【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関数の戻り値を意識することで、プログラムの品質や運用がより確かなものになります。