名前空間
変種

atexit

提供: cppreference.com
<tbody> </tbody>
ヘッダ <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]