Posted at

C言語のreturn 0の有用性が今更わかった話

More than 3 years have passed since last update.

returnで0を返せば正常終了、0以外なら異常終了と知っていただけで、

その0など戻り値を利用する機会がなかったのですが、やった有用性がわかりました

C言語やり始めのときはmainの中のreturnってどこに返してるのって疑問に

持つので、疑問に思っている人は参考にしてみてください


検証プログラム

0を返すのと1を返すプログラムです


ok.c

int main(){return 0;}



ng.c

int main(){return 1;} // 1を返して異常終了


上記のプログラムをターミナル上などでコンパイルして、

./a.out && echo "OK"と実行してみます

$ gcc ok.c

$ ./a.out && echo "OK"
# 「OK」 と出力

$ gcc ng.c

$ ./a.out && echo "OK"
# なにも出力されない


&&の意味

&&は前のプログラムが正常終了したら、次のプログラムを実行するというものなので、

今回の場合./a.outが正常終了したら、次のechoをするってことです。


おまけ: 戻り値の値を確認する方法

echo $?を使うと戻り値が確認できるみたいです

$ gcc ok.c

$ ./a.out
$ echo $?
# 「0」と出力

$ gcc ng.c

$ ./a.out
$ echo $?
# 「1」と出力