©
本文档使用 PHP中文网手册 发布
在头文件<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 ++文档 |