atexit
来自 cppreference.cn
                    
                                        
                    
                    
                                                            
                    | 在头文件  <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 函数 (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 时被调用 (function) | 
| C++ 文档 关于 atexit | |


