atexit
From cppreference.net
|
ヘッダーで定義
<stdlib.h>
|
||
|
int
atexit
(
void
(
*
func
)
(
void
)
)
;
|
||
func
が指す関数を、通常のプログラム終了時(
exit()
の呼び出し、または
main()
からの戻り)に呼び出されるよう登録します。登録された関数は、登録された順序と逆の順序で呼び出されます。すなわち、最後に登録された関数が最初に実行されます。
同じ関数が複数回登録される場合があります。
実装は少なくとも 32 個の関数の登録をサポートすることが保証されています。正確な上限は実装定義です。
目次 |
パラメータ
| func | - | 正常なプログラム終了時に呼び出される関数へのポインタ |
戻り値
0 登録が成功した場合は0、それ以外の場合は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 atexit関数 (p: 255)
- C11規格 (ISO/IEC 9899:2011):
-
- 7.22.4.2 atexit関数 (p: 350)
- C99規格 (ISO/IEC 9899:1999):
-
- 7.20.4.2 atexit関数 (p: 315)
- C89/C90標準 (ISO/IEC 9899:1990):
-
- 7.10.4.2 atexit関数 (p: 156)
関連項目
|
(C11)
|
quick_exit
呼び出し時に実行される関数を登録する
(関数) |
|
C++ documentation
for
atexit
|
|