リンカ・ローダと実行形式
C言語のmain関数が「return 3;」で終わったとき、その値3は一般にどうなるか。
- Aプログラムの終了ステータスとして、プログラムを起動した側(シェルなど)に渡される
- B画面に「3」と表示される
- C次にプログラムを起動したときの、最初の引数になる
答えと解説を見る
正解:A. プログラムの終了ステータスとして、プログラムを起動した側(シェルなど)に渡される
mainの戻り値は起動コードによってexitに渡され、OSを通じて親のプロセスに終了ステータスとして伝えられます。慣習として0は成功、0以外は何らかの失敗を表し、シェルでは「echo $?」で直前のコマンドの終了ステータスを見られます。スクリプトでは、この値を見て次の処理を続けるか止めるかを決めます。
- A. 正しい。0は成功、0以外は失敗を表すのが慣習です。
- B. 戻り値が自動で表示されることはありません。
- C. 次回の引数にはなりません。