atexit
来自cppreference.com
| 在标头 <stdlib.h> 定义
|
||
| |
||
注册 func 所指向的函数,使它在程序正常终止(通过 exit() 或从 main() 返回)时得到调用。将以注册顺序的逆序调用这些函数,即首先执行最后调用的函数。
可以注册同一函数多于一次。
实现保证支持注册至少 32 个函数。确切的极限是由实现定义的。
参数
| func | - | 指向要在程序正常终止时调用的函数的指针 |
返回值
若注册成功则为 0,否则为非零值。
示例
运行此代码
#include <stdlib.h>
#include <stdio.h>
void f1(void)
{
puts("f1");
}
void f2(void)
{
puts("f2");
}
int main(void)
{
if ( ! atexit(f1) && ! atexit(f2) && ! atexit(f2) )
return EXIT_SUCCESS ;
// atexit registration failed
return EXIT_FAILURE ;
} // <- 若注册成功则会调用 f2, f2, f1
输出:
f2
f2
f1
引用
- C17 标准(ISO/IEC 9899:2018):
- 7.22.4.2 The atexit function (第 255 页)
- C11 标准(ISO/IEC 9899:2011):
- 7.22.4.2 The atexit function (第 350 页)
- C99 标准(ISO/IEC 9899:1999):
- 7.20.4.2 The atexit function (第 315 页)
- C89/C90 标准(ISO/IEC 9899:1990):
- 7.10.4.2 The atexit function (第 156 页)
参阅
(C11) |
注册要在调用 quick_exit 时调用的函数 (函数) |
atexit 的 C++ 文档
| |