atexit
atexit
在头文件 | | |
---|---|---|
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):
扩展内容
at_quick_exit(C11) | 注册要在quick_exit调用(函数)上调用的函数 |
---|
| 用于atexit的C ++文档 |