呼び出しプロセスを終了します。
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);
}
DLL_PROCESS_ATTACHからexitを呼び出すためにDllMainを使用しないでください。
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