トップページ – C言語編 – 標準ライブラリのリファレンス(名前順)
トップページ – C言語編 – 標準ライブラリのリファレンス(ヘッダ別)
概要 |
プログラムを正常終了させる。 |
|
ヘッダ |
||
形式 |
// C99 まで void exit(int status); // C11 から _Noreturn void exit(int status); |
|
引数 |
status |
終了の意味合いを示す値。0 あるいは EXIT_SUCCESS は成功終了を表す。EXIT_FAILURE は失敗終了を表す。これら以外の値を返した場合の動作は、処理系定義。 |
戻り値 |
なし(呼び出し元に戻ることがない) |
|
詳細 |
プログラムを正常終了させる。 終了前に、atexit関数で登録されていた関数が、登録された順番の逆順に実行される。その後、オープンされていた出力ストリームがフラッシュされる。そして、すべてのストリームがクローズされる。また、tmpfile関数が生成していた一時ファイルも削除される。最後に、プログラムが終了する。制御がプログラムの実行環境へ戻されるが、その際に何らかの結果を処理系定義の形で返す。 |
|
注意 |
atexit関数で登録した関数の中から、さらに exit関数や longjmp関数を呼び出した場合の動作は未定義。 C11 の at_quick_exit関数によって登録された関数は呼び出されない。 |
|
使用例 |
実行結果:
|
|
関連 |
exit関数による終了処理の際に呼び出される関数を atexit関数で登録できる。 exit関数以外にプログラムを終了させる関数として、いくつかの処理を省いた _Exit関数がある。C11 からは、できる限り迅速にプログラムを正常終了させる quick_exit関数が追加されている。 異常終了を表す abort関数がある。 |
|
解説章 |
第30章 |
本ページはアフィリエイトプログラムによる収益を得ています。
以下のリンクから商品を購入されると、Programming Place
管理者に紹介料が支払われています。
(
の直後、)
の直前に空白を入れない)return 0;
を削除(C言語編全体でのコードの統一)_Exit関数の追加を受けて、全体的に文章を見直し修正。
すべてのストリームがクローズされることを追記。
atexit関数によって登録した関数内で
longjmp関数が呼び出された場合の動作について追記。
「不成功」という表現を「失敗」に統一。
新規作成。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |