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のプログラムが出てきて意味不明かも知れません。。。 解りにくければ質問してください。
おまけ