exit、_exit
exit は、クリーンアップの後に、呼び出し元プロセスを終了します; _exit は、その後を終了します。
[!メモ]
テストのまたはデバッグ シナリオを除外 Windows ストア、アプリケーションを終了するには、このメソッドを使用しないでください。Windows ストア アプリケーションを閉じるプログラムまたは UI の方法は、の Windows 8 のアプリケーションの要件の検証セクション 3.6 に従って許可されていません。詳細については、アプリケーションの有効期間 (Windows ストア apps)" "を参照してください。
void exit(
int status
);
void _exit(
int status
);
パラメーター
- status
終了ステータス。
解説
exit と _exit 関数は、呼び出し元プロセスを終了します。atexit と _onexitに登録されている後入れ先出し (LIFO) し、(LIFO) の順序の関数呼び出し のexit は、プロセスが終了する前にすべてのファイル バッファーをフラッシュします。_exit は atexit か _onexit を処理したり、フラッシュ ストリームのバッファーしないでプロセスを終了します。通常、status の値は 0、エラーを示すために、他の値に終了または通常のセットを示すように設定されます。
exit と _exit の呼び出しが値を返さないが、下位バイト status のは、呼び出し元プロセスの完了後 1 の場合、待機している呼び出しプロセスで使用できるようになります。status の値には、オペレーティング システムのバッチ コマンド ERRORLEVEL に使用できるように、2 種類の定数の 1 によって表されます: EXIT_SUCCESS0 の値を表す、または EXIT_FAILURE1.の値を表します。exit、_exit、_cexitと _c_exit は次のようにします。
Function |
説明 |
---|---|
exit |
完全な C ライブラリの終了処理を実行し、プロセスを終了し、指定されたステータス コードで終了します。 |
_exit |
高速 C ライブラリの終了処理を実行し、プロセスを終了し、指定されたステータス コードで終了します。 |
_cexit |
完全な C ライブラリの終了処理を実行し、呼び出し元に返されるが、プロセスは終了しません。 |
_c_exit |
高速 C ライブラリの終了処理を実行し、呼び出し元に返されるが、プロセスは終了しません。 |
呼び出すときにの呼び出し時にある一時または自動オブジェクトの exit または _exit 関数、デストラクターは呼び出されません。自動オブジェクトは静的として宣言されていない関数に定義されています。一時オブジェクトはコンパイラによって作成されたオブジェクトです。次のように、exit か _exitを呼び出す前に自動オブジェクトを破棄するには、明示的にオブジェクトのデストラクターを呼び出します:
myObject.myClass::~myClass();
DllMainから exit を呼び出すために DLL_PROCESS_ATTACH を使用しないでください。DLLMain の関数を終了するには、DLL_PROCESS_ATTACHから FALSE を返します。
必要条件
Function |
必須ヘッダー |
---|---|
exit |
<process.h> か <stdlib.h> |
_exit |
<process.h> か <stdlib.h> |
追加の互換性の詳細については、互換性を参照してください。
使用例
// 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 );
}
同等の .NET Framework 関数
System::Diagnostics::Process::Kill