at_quick_exit
来自cppreference.com
在标头 <stdlib.h> 定义
|
||
int at_quick_exit( void (*func)(void) ); |
(C11 起) | |
注册 func
所指向的函数,使它在程序快速终止(通过 quick_exit)时得到调用。
at_quick_exit
是线程安全的:从多个线程调用此函数不会导入数据竞争。实现应当支持注册至少 32 个函数。确切的极限是由实现定义的。
所注册的函数在程序正常终止时并不会被调用。如果需要函数在这种情况下被调用,必须使用 atexit。
参数
func | - | 指向要在程序快速终止调用的函数的指针 |
返回值
若注册成功则为 0,否则为非零值。
示例
运行此代码
#include <stdlib.h> #include <stdio.h> void f1(void) { puts("pushed first"); fflush(stdout); } void f2(void) { puts("pushed second"); } int main(void) { at_quick_exit(f1); at_quick_exit(f2); quick_exit(0); }
输出:
pushed second pushed first
引用
- C17 标准(ISO/IEC 9899:2018):
- 7.22.4.3 The at_quick_exit function (第 255 页)
- C11 标准(ISO/IEC 9899:2011):
- 7.22.4.3 The at_quick_exit function (第 351 页)
参阅
引发非正常的程序终止(不清理) (函数) | |
引发正常的程序终止并清理 (函数) | |
注册一个要在调用 exit() 时调用的函数 (函数) | |
(C11) |
引发正常的程序终止但不完全清理 (函数) |