
【6日でできるC言語入門】main関数の戻り値
C言語のプログラムは、必ず「main関数」から実行が始まります。main関数は、他の関数と同じように戻り値(return値)を持つ関数です。
しかし、main関数の戻り値には特別な意味があり、プログラム終了時にOSへ返す値として利用されます。
この戻り値によって、プログラムが「正常終了したのか」「エラー終了したのか」などの状態をOSや他のプログラムに伝えることができます。

1.main関数の戻り値の基本
1.1. main関数の書式と戻り値
main関数の典型的な宣言方法は次の通りです。
int main(void) {
// ...処理...
return 0;
}main関数はint型(整数型)の値を返す関数です。
このreturnで返される値が「main関数の戻り値」であり、プログラムの終了コードとも呼ばれます。
| 戻り値 | 意味 |
|---|---|
| 0 | 正常終了(成功) |
| 0以外(例:1) | 異常終了(エラーや失敗) |
1.2. サンプルプログラムで確認
サンプルプログラム1
プロジェクト/ファイル名: Lesson41_1/main.c
#include <stdio.h>
int main(void) {
printf("プログラムが正常に実行されました。\n");
return 0; // 正常終了
}実行結果
プログラムが正常に実行されました。このとき、プログラムの終了コード(戻り値)は0となります。
2.エラー終了の場合の戻り値
2.1. 異常終了の例
main関数でreturn 1;や他の0以外の値を返すと、「異常終了」を意味します。
この値はOSやバッチ処理、スクリプトから確認することができます。
サンプルプログラム2
プロジェクト/ファイル名: Lesson41_2/main.c
#include <stdio.h>
int main(void) {
printf("エラーが発生しました。\n");
return 1; // エラー終了
}実行結果
エラーが発生しました。この場合、終了コード(戻り値)は1です。
2.2. 戻り値の用途と意味
| 戻り値 | 用途例 |
|---|---|
| 0 | 正常に処理が完了したことを示す |
| 1 | 一般的なエラー、異常終了 |
| 他 | エラー種別ごとに違う値を返すこともある |
バッチファイルやシェルスクリプト内で$?や%ERRORLEVEL%で取得し、次の処理に使うこともできます。
3.main関数の戻り値を確認する方法
3.1. コマンドラインから終了コードを調べる
Unix系OS(LinuxやmacOS)では、Cプログラム実行後にecho $?で終了コード(戻り値)を確認できます。
echo $?Windowsのコマンドプロンプトでは、echo %ERRORLEVEL%で確認します。
echo %ERRORLEVEL%まとめ
- main関数の戻り値はプログラムの実行結果をOSに伝える重要な役割を持ちます。
- 一般的には
return 0;で正常終了、return 1;や他の値で異常終了を表現します。 - 終了コードはシェルスクリプトや他のプログラムからも参照でき、処理の制御に使われます。
main関数の戻り値を意識することで、プログラムの品質や運用がより確かなものになります。
