at_quick_exit
From cppreference.net
|
定义于头文件
<stdlib.h>
|
||
|
int
at_quick_exit
(
void
(
*
func
)
(
void
)
)
;
|
(C11 起) | |
注册由
func
指向的函数,使其在程序快速终止时(通过
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 at_quick_exit 函数 (页: 255)
- C11 标准 (ISO/IEC 9899:2011):
-
- 7.22.4.3 at_quick_exit 函数 (页: 351)
参阅
|
导致程序异常终止(不进行清理)
(function) |
|
|
导致程序正常终止并进行清理
(function) |
|
|
注册在调用
exit()
时要执行的函数
(function) |
|
|
(C11)
|
导致程序正常终止但不完全清理
(function) |
|
C++ documentation
for
at_quick_exit
|
|