namespace std {
void exit(int status); // C++03
[[noreturn]] void exit(int status); // C++11
}
概要
プログラムを終了させる。
パラメータとして渡されたstatus
は、プログラムの終了コードとして使用される。
- プログラムを正常終了させたい場合は、
0
もしくはEXIT_SUCCESS
をパラメータstatus
に設定する。 - プログラムを異常終了させたい場合は、
EXIT_FAILURE
をパラメータstatus
に設定する。
この関数でプログラムを終了させた場合、生存しているオブジェクトおよびストリームは、自動的に破棄される。
効果
- スレッド生存期間を持つオブジェクトが破棄される。
- 静的生存期間を持つオブジェクトが破棄される。
atexit()
関数で登録された関数が、逆順に呼び出される。- 登録された関数で例外が送出された場合、
std::terminate()
関数が呼び出され、プログラムが異常終了する。
- 登録された関数で例外が送出された場合、
- 全てのCストリームが破棄される。
- まだ書き出されていないバッファリングされたデータはフラッシュされる。
- ストリームが閉じられる。
tmpfile()
関数の呼び出しで作成された一時ファイルが削除される。
- ホスト環境に制御が戻される。
- パラメータ
status
の値が0
もしくはEXIT_SUCCESS
であった場合、実装依存の正常終了値が返る。 - パラメータ
status
の値がEXIT_FAILURE
であった場合、実装依存の異常終了値が返る。 - それ以外の場合には、実装依存の値が返る。
- パラメータ
戻り値
この関数は決して返らない。
例
#include <cstdlib>
void f()
{
std::exit(0); // プログラムを正常終了させる
}
int main()
{
f();
}
出力
関連項目
名前 | 説明 |
---|---|
atexit |
プログラムが通常の方法で終了するときに呼ばれる関数を登録する |
quick_exit |
後処理をせずに、プログラムを終了させる |