atexit
From cppreference.net
|
定义于头文件
<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 atexit 函数 (页: 255)
- C11 标准 (ISO/IEC 9899:2011):
-
- 7.22.4.2 atexit 函数 (p: 350)
- C99标准(ISO/IEC 9899:1999):
-
- 7.20.4.2 atexit函数(页:315)
- C89/C90 标准 (ISO/IEC 9899:1990):
-
- 7.10.4.2 atexit 函数 (页码: 156)
参见
|
(C11)
|
注册在调用
quick_exit
时要执行的函数
(函数) |
|
C++ 文档
关于
atexit
|
|