atexit
在头文件<stdlib.h>中定义  |   |   | 
|---|---|---|
int atexit(void(* func)(void));  |   |   | 
注册func指向的函数,在正常程序终止时(通过exit()或从main()返回)调用。 这些函数将按照它们注册的相反顺序调用,即最后注册的函数将首先执行。
相同的功能可以被多次注册。
atexit 是线程安全的:从多个线程调用函数不会导致数据竞争。
该实现保证支持至少32个函数的注册。 确切的限制是实现定义的。
参数
功能  | -  | 指向正常程序终止时要调用的函数的指针  | 
|---|
返回值
如果注册成功,则返回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标准(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): 
- 4.10.4.2 atexit函数
 
 
扩展内容
at_quick_exit(C11)  | 注册要在quick_exit调用(函数)上调用的函数  | 
|---|
| 用于atexit的C ++文档 |
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com

