atexit
終了時に指定された関数を処理します。
int atexit(
void (__cdecl *func )( void )
);
パラメーター
- func
呼び出される関数。
戻り値
atexit エラーが発生した場合はゼロ以外の値を正常終了した場合は 0 を返します。
解説
atexit の関数はプログラムが正常に終了した場合に呼び出す関数 func() のアドレスに渡されます。atexit への後続の呼び出しは最後に実行される関数の登録最初のシーケンスを (LIFO) 作成します。atexit に渡される関数はパラメーターを使用できません。atexit と _onexit は関数の登録をヒープを使用します。したがって登録できる関数の数はヒープ メモリでのみ使用できます。
atexit の関数のコードは atexit の関数を呼び出したとき既にアンロードする可能性のあるすべての DLL 依存関係を含めることはできません。
(_onexit の同様の関数) ではなく ANSI 対応アプリケーションを作成するにはANSI 標準 atexit の関数を使用します。
必要条件
ルーチン |
必須ヘッダー |
---|---|
atexit |
<stdlib.h> |
使用例
このプログラムは atexit が呼び出されたときに実行される関数のスタック上に 4 本の関数を押します。プログラムの終了が最後にこれらのプログラム実行されると最初は。
// crt_atexit.c
#include <stdlib.h>
#include <stdio.h>
void fn1( void ), fn2( void ), fn3( void ), fn4( void );
int main( void )
{
atexit( fn1 );
atexit( fn2 );
atexit( fn3 );
atexit( fn4 );
printf( "This is executed first.\n" );
}
void fn1()
{
printf( "next.\n" );
}
void fn2()
{
printf( "executed " );
}
void fn3()
{
printf( "is " );
}
void fn4()
{
printf( "This " );
}
同等の .NET Framework 関数
System:: Diagnostics:: Process:: 終了します。