C 参考手册
- C 语言
- C 关键词
- 预处理器
- C 标准库头文件
- 类型支持
- 程序支持工具
- longjmp
- _Exit
- atexit
- at_quick_exit
- signal
- EXIT_SUCCESS, EXIT_FAILURE
- raise
- sig_atomic_t
- SIG_DFL, SIG_IGN
- SIG_ERR
- SIGTERM, SIGSEGV, SIGINT, SIGILL, SIGABRT, SIGFPE
- system
- getenv, getenv_s
- quick_exit
- exit
- abort
- setjmp
- jmp_buf
- 变参数函数
- 错误处理
- 动态内存管理
- 日期和时间工具
- 字符串库
- 算法
- 数值
- 文件输入/输出
- 本地化支持
- 原子操作库
- 线程支持库
- 实验性 C 标准库
- 有用的资源
- 符号索引
- 注释
atexit
定义于头文件 <stdlib.h>
|
||
int atexit( void (*func)(void) ); |
||
注册 func
所指向的函数,使它在程序正常终止(通过 exit() 或从 main()
返回)时得到调用。将以注册顺序的逆序调用这些函数,即首先执行最后调用的函数。
可以注册同一函数多于一次。
atexit
是线程安全的:多个线程调用此函数不会引入数据竞争。
标准保证至少支持注册 32 个函数。准确极限是实现定义的。
参数
func | - | 指向要在程序正常终止时调用的函数的指针 |
返回值
若注册成功则为 0 ,否则为非零值。
示例
运行此代码
输出:
pushed second pushed first
引用
- C11 standard (ISO/IEC 9899:2011):
- 7.22.4.2 The atexit function (p: 350)
- C99 standard (ISO/IEC 9899:1999):
- 7.20.4.2 The atexit function (p: 315)
- C89/C90 standard (ISO/IEC 9899:1990):
- 4.10.4.2 The atexit function
参阅
(C11) |
注册要在调用 quick_exit 时调用的函数 (函数) |