トップページ – C言語編 – 標準ライブラリのリファレンス(名前順)
トップページ – C言語編 – 標準ライブラリのリファレンス(ヘッダ別)
概要 | できるだけ速くプログラムを正常終了させる。 | |
ヘッダ | stdlib.h | |
形式 | _Noreturn void quick_exit(int status); | |
引数 | status | 終了の意味合いを示す値。0 あるいは EXIT_SUCCESS は成功終了を表す。EXIT_FAILURE は失敗終了を表す。これら以外の値を返した場合の動作は、処理系定義。 |
戻り値 | なし(呼び出し元に戻ることがない) | |
詳細 |
できるだけ速くプログラムを正常終了させる。 まず、at_quick_exit関数で登録されていた関数が、登録された順番の逆順に実行される。その後、引数status を _Exit関数に渡して呼び出す(そして、_Exit関数がプログラムを終了させる)。つまり、exit関数と異なり、出力ストリームのフラッシュ、すべてのストリームのクローズ、tmpfile関数が生成していた一時ファイルの削除を行わないことによって、迅速にプログラムを終了させようとする(こういった終了処理は、プログラムが終了させてから、OS などのシステムが行うことを期待する)。 |
|
注意 |
exit関数とは異なり、atexit関数で登録した関数は呼び出されない。また、signal関数で登録されたシグナルハンドラも呼び出さない。 at_quick_exit関数で登録した関数の中から、さらに quick_exit関数や exit関数、longjmp関数を呼び出した場合の動作は未定義。 quick_exit関数の呼び出し中、シグナルが発生した場合の動作は未定義。 gcc の古いバージョン(たとえば gcc 6.4.0 (MinGW-w64))などで、quick_exit関数を使用できないケースがある。バージョンを上げるなどの根本的な解決以外では、exit関数や _Exit関数などのほかの関数に置き換える必要があるが、挙動は異なることに注意。 |
|
使用例 |
実行結果:
|
|
関連 |
quick_exit関数による終了処理の際に呼び出される関数を at_quick_exit関数で登録できる。 quick_exit関数以外にプログラムを終了させる関数として、exit関数、_Exit関数がある。 異常終了を表す abort関数がある。 |
|
解説章 |
本ページはアフィリエイトプログラムによる収益を得ています。
以下のリンクから商品を購入されると、Programming Place
管理者に紹介料が支払われています。
(
の直後、)
の直前に空白を入れない)return 0;
を削除(C言語編全体でのコードの統一)
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |