exit
、 _Exit
、 _exit
呼び出しプロセスを終了します。 exit
関数はクリーンアップ後に呼び出しプロセスを終了させます。一方、 _exit
と _Exit
は直ちに終了させます。
Note
テスト シナリオまたはデバッグ シナリオの場合を除き、この方法を使用してユニバーサル Windows プラットフォーム (UWP) アプリをシャットダウンしないでください。 プログラムまたは UI を使用して Store アプリを閉じる方法は、Microsoft Store ポリシーでは許可されていません。 詳細については、UWP アプリのライフサイクルに関するページを参照してください。 UWP アプリについては、ユニバーサル Windows プラットフォームのドキュメントを参照してください。
構文
void exit(
int const status
);
void _Exit(
int const status
);
void _exit(
int const status
);
パラメーター
status
終了ステータス コード。
解説
exit
関数、 _Exit
関数、 _exit
関数は呼び出しプロセスを終了します。 exit
関数はスレッド ローカル オブジェクトのデストラクターを呼び出してから、 atexit
と _onexit
によって登録された関数を、後入れ先出し (LIFO) の順序で呼び出し、プロセスが終了する前にすべてのファイル バッファーをフラッシュします。 _Exit
関数と _exit
関数は、スレッド ローカル オブジェクトの破棄も、 atexit
や _onexit
関数の処理もせず、ストリーム バッファーのフラッシュもしないでプロセスを終了します。
exit
、_Exit
、および_exit
の呼び出しは値を返しませんが、status
内の値は、プロセスの終了後にホスト環境で使用したり、呼び出しプロセスが存在する場合は待機したりできます。 通常、呼び出し元は、終了を示すために status
値を 0 に設定し、エラーを示す場合は他の値に設定します。 status
値は、オペレーティング システムのバッチ コマンド ERRORLEVEL
で使用でき、0 の値を表す EXIT_SUCCESS
、または 1 の値を表す EXIT_FAILURE
の 2 種類の定数のうちのいずれかで表されます。
exit
、 _Exit
、 _exit
、 quick_exit
、 _cexit
、 _c_exit
関数は次のように動作します。
関数 | 説明 |
---|---|
exit |
完全な C ライブラリの終了処理を実行してプロセスを終了し、指定されたステータス コードをホスト環境に提供します。 |
_Exit |
最低限の C ライブラリの終了処理を実行してプロセスを終了し、指定されたステータス コードをホスト環境に提供します。 |
_exit |
最低限の C ライブラリの終了処理を実行してプロセスを終了し、指定されたステータス コードをホスト環境に提供します。 |
quick_exit |
高速な C ライブラリの終了処理を実行してプロセスを終了し、指定されたステータス コードをホスト環境に提供します。 |
_cexit |
完全な C ライブラリの終了処理を実行し、呼び出し元に戻ります。 プロセスを終了しません。 |
_c_exit |
最低限の C ライブラリの終了処理を実行し、呼び出し元に戻ります。 プロセスを終了しません。 |
exit
、_Exit
、または_exit
関数を呼び出すと、呼び出し時に存在する一時オブジェクトまたは自動オブジェクトのデストラクターは呼び出されません。 自動オブジェクトは、関数で定義される静的ではないローカル オブジェクトです。 一時オブジェクトは、関数呼び出しによって返される値など、コンパイラによって作成されるオブジェクトです。 exit
、_Exit
、または _exit
を呼び出す前に自動オブジェクトを破棄するには、次のように、明示的にオブジェクトのデストラクターを呼び出します。
void last_fn() {}
struct SomeClass {} myInstance{};
// ...
myInstance.~SomeClass(); // explicit destructor call
exit(0);
}
DllMain
からexit
を呼び出すためにDLL_PROCESS_ATTACH
を使用しないでください。 DLLMain
関数を終了するには、FALSE
から DLL_PROCESS_ATTACH
を返します。
既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT でのグローバル状態」を参照してください。
要件
機能 | 必須ヘッダー |
---|---|
exit 、 _Exit 、 _exit |
<process.h> または <stdlib.h> |
互換性の詳細については、「 Compatibility」を参照してください。
例
// crt_exit.c
// This program returns an exit code of 1. The
// error code could be tested in a batch file.
#include <stdlib.h>
int main( void )
{
exit( 1 );
}
関連項目
プロセスと環境の制御
abort
atexit
_cexit
, _c_exit
_exec
、_wexec
関数
_onexit
, _onexit_m
quick_exit
_spawn
、_wspawn
関数
system
, _wsystem