次の方法で共有


atexit

終了時に指定された関数を処理します。

int atexit(
   void (__cdecl *func )( void )
);

パラメーター

  • func
    呼び出される関数。

戻り値

atexit でエラーが発生した場合、または 0 以外の値正常終了した場合は 0 を返します。

解説

atexit 関数は、プログラムが正常に終了した場合に呼び出す関数 (func) のアドレスに渡されます。 atexit に継続的に呼び出し、最後に実行される関数のレジスタ、(LIFO) 最初のシーケンスを作成します。 atexit に渡された関数はパラメーターを使用できません。 atexit_onexit は関数のレジスタを、ヒープを使用します。 したがって、登録できる関数の数はヒープ メモリでのみ使用できます。

atexit 関数のコードは atexit 関数が呼び出されるときに既にアンロードされた可能性のある DLL 依存関係を含めることはできません。

(_onexit の同様の関数) ではなく ANSI 準拠アプリケーションを生成するには、atexit の ANSI 標準関数を使用します。

必要条件

ルーチン

必須ヘッダー

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::Exited

参照

関連項目

プロセス制御と環境制御

abort

exit、_exit

_onexit、_onexit_m