クリーンアップ操作を実行し、プロセスを終了せずに処理を戻します。
構文
void _cexit( void );
void _c_exit( void );
解説
_cexit 関数は、atexit と _onexitによって登録された関数を後入れ先出し (LIFO) 順に呼び出します。 次に _cexit はすべての I/O バッファーをフラッシュし、開いているすべてのストリームを閉じてから戻ります。 _c_exit の動作は、atexit や _onexit を処理またはストリーム バッファーをフラッシュすることなく、呼び出し元プロセスに戻る点を除いて、_exit と同じです。 exit、_exit、_cexit、および_c_exitの動作を次の表に示します。
| 機能 | Behavior |
|---|---|
exit |
完全な C ライブラリの終了処理を実行してプロセスを終了し、指定されたステータス コードで終了します。 |
_exit |
高速な C ライブラリの終了処理を実行してプロセスを終了し、指定されたステータス コードで終了します。 |
_cexit |
完全な C ライブラリ終了プロシージャを実行し、呼び出し元に戻りますが、プロセスは終了しません。 |
_c_exit |
クイック C ライブラリ終了プロシージャを実行し、呼び出し元に戻りますが、プロセスは終了しません。 |
_cexitまたは_c_exit関数を呼び出すと、呼び出し時に存在する一時オブジェクトまたは自動オブジェクトのデストラクターは呼び出されません。 自動オブジェクトは、オブジェクトが静的であると宣言されていない関数で定義されているオブジェクトです。 一時オブジェクトはコンパイラによって作成されるオブジェクトです。 _cexit または _c_exit を呼び出す前に自動オブジェクトを破棄するには、次のように、明示的にオブジェクトのデストラクターを呼び出します。
myObject.myClass::~myClass( );
既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT でのグローバル状態」を参照してください。
要件
| ルーチンによって返される値 | 必須ヘッダー |
|---|---|
_cexit |
<process.h> |
_c_exit |
<process.h> |
互換性の詳細については、「 Compatibility」を参照してください。
関連項目
プロセスと環境の制御
abort
atexit
_exec、_wexec 関数
exit、 _Exit、 _exit
_onexit, _onexit_m
_spawn、_wspawn 関数
system, _wsystem