名前空間
変種
操作

atexit

提供: cppreference.com
< c‎ | program
ヘッダ <stdlib.h> で定義
int atexit( void (*func)(void) );

(exit() または main() から戻ることによって) プログラムが正常終了したときに呼ばれるように func の指す関数を登録します。 関数は登録されたのと逆順で呼ばれます。 つまり、最後に登録された関数が最初に呼ばれます。

同じ関数を2回以上登録しても構いません。

atexit はスレッドセーフです。 複数のスレッドから呼んでもデータ競合を発生しません。

処理系は少なくとも 32 個の関数の登録をサポートすることが保証されます。 正確な制限は処理系定義です。

目次

[編集] 引数

func - プログラムの正常終了時に呼ばれる関数を指すポインタ

[編集] 戻り値

登録に成功した場合は 0、そうでなければ非ゼロの値。

[編集]

#include <stdlib.h>
#include <stdio.h>
 
void f1(void)
{
    puts("pushed first");
}
 
void f2(void)
{
    puts("pushed second");
}
 
int main(void)
{
    atexit(f1);
    atexit(f2);
}

出力:

pushed second
pushed first

[編集] 参考文献

  • C11 standard (ISO/IEC 9899:2011):
  • 7.22.4.2 The atexit function (p: 350)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.20.4.2 The atexit function (p: 315)
  • C89/C90 standard (ISO/IEC 9899:1990):
  • 4.10.4.2 The atexit function

[編集] 関連項目

quick_exit が行われた時に呼ばれる関数を登録します
(関数) [edit]