C言語入門:main関数でのreturn文

mainの最後に「return 0」と書いてあるサンプルがあります。 ここでは、それを説明しようと思います。

mainの中のreturn

mainの中のreturnで返る値は、プログラムの実行が終わったときにプログラムが返す値です。 mainの中のreturnで返す値が0であれば、プログラム全体が成功、0以外であれば失敗とする慣習があります。 (UNIX系システムではこのような慣習があります)

ただ、このように書いても良く解らないと思うので、以下に例を示します。 以下の例では、mainは「return 1」をしています。


int
main()
{
 return 1;
}

上記例をコンパイルして出来上がったファイルを「a.exe」だとします。 (cygwinの場合です。LinuxなどのUNIX系で行った場合はa.outになると思われます。)

この実行ファイルの結果を受け取って、行動を変える以下のようなシェルプログラムを書いたとします。 以下のシェルプログラムを実行可能にするためには、「chmod 755 sample.sh」としてください。 (シェルプログラムのファイル名をsample.shとした場合です。)


#!/bin/csh

if ( { ./a.exe } ) then
  echo ok
else
  echo fail
endif

上記シェルプログラムの if 文は a.exe を実行した結果によって条件分岐しています。 もし、a.exeが「return 0」であれば、echo ok が実行されて「ok」と表示されます。 逆に0以外であれば「fail」と表示されます。

このように、mainでの返り値は、そのプログラムが実行された結果を知るために使えます。 今回の例では、return 1なので「fail」と表示されます。 C言語のmain文サンプルをreturn 0に変更してシェルプログラムを実行し直して見ると、「ok」と表示されるようになることが確認できると思います。

最後に

とりあえず簡単にmainでのreturn文の使い方を示してみました。 いきなりcshのプログラムが出てきて意味不明かも知れません。。。 解りにくければ質問してください。

おまけ

YouTubeチャンネルやってます!