atexit

来自cppreference.com
< c‎ | program
定义于头文件 <stdlib.h>
int atexit( void (*func)(void) );

func所指的函数注册为在程序正常终止时调用(通过exit()或从main()返回)。这些函数将以注册的顺序的逆序调用,即最后注册的函数在最先调用。

同一函数可以被注册多于一次。

atexit是线程安全的:多个线程调用此函数不会导入数据竞争。

标准保证至少支持注册32个函数。准确极限是实现定义的。

目录

[编辑] 参数

func - 指向于程序正常终止时待调用的函数的指针

[编辑] 返回值

若注册成功则为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 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

[编辑] 参阅

注册一个函数使其在调用quick_exit时被调用
(函数) [edit]
atexitC++文档