命名空间
变体
操作

atexit

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

注册由 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 ;
 
}   // <- if registration was successful calls f2, f2, f1

输出

f2
f2
f1

[编辑] 参考

  • C17 标准 (ISO/IEC 9899:2018)
  • 7.22.4.2 atexit 函数 (p: 255)
  • C11 标准 (ISO/IEC 9899:2011)
  • 7.22.4.2 atexit 函数 (p: 350)
  • C99 标准 (ISO/IEC 9899:1999)
  • 7.20.4.2 atexit 函数 (p: 315)
  • C89/C90 标准 (ISO/IEC 9899:1990)
  • 7.10.4.2 atexit 函数 (p: 156)

[编辑] 参见

注册一个函数,使其在 quick_exit 调用时被调用
(函数) [编辑]
C++ 文档 关于 atexit