名前空間
変種
操作

atexit

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

funcが指す関数を、通常のプログラム終了時(exit()による終了、またはmain()からの復帰)に呼び出されるように登録します。関数は登録された逆順で呼び出されます。つまり、最後に登録された関数が最初に実行されます。

同じ関数を複数回登録することも可能です。

実装は、少なくとも32個の関数登録をサポートすることが保証されています。正確な上限は実装定義です。

目次

[編集] パラメータ

func - 通常のプログラム終了時に呼び出される関数へのポインタ

[編集] 戻り値

登録が成功した場合は0、それ以外の場合はゼロ以外の値を返します。

[編集]

#include <stdlib.h>
#include <stdio.h>
 
void f1(void)
{
    puts("f1");
}
 
void f2(void)
{
    puts("f2");
}
 
int main(void)
{
    if ( ! atexit(f1) && ! atexit(f2) && ! atexit(f2) )
        return EXIT_SUCCESS ;
 
    // atexit registration failed
    return EXIT_FAILURE ;
 
}   // <- if registration was successful calls f2, f2, f1

出力

f2
f2
f1

[編集] 参考文献

  • C17標準 (ISO/IEC 9899:2018)
  • 7.22.4.2 The atexit function (p: 255)
  • C11標準 (ISO/IEC 9899:2011)
  • 7.22.4.2 The atexit function (p: 350)
  • C99標準 (ISO/IEC 9899:1999)
  • 7.20.4.2 The atexit function (p: 315)
  • C89/C90標準 (ISO/IEC 9899:1990)
  • 7.10.4.2 The atexit function (p: 156)

[編集] 関連項目

quick_exit の呼び出し時に呼ばれる関数を登録する
(関数) [編集]
English 日本語 中文(简体) 中文(繁體)