非常教程

C参考手册

编程支持 | Program support

atexit

在头文件<stdlib.h>中定义

int atexit(void(* func)(void));

注册func指向的函数,在正常程序终止时(通过exit()或从main()返回)调用。 这些函数将按照它们注册的相反顺序调用,即最后注册的函数将首先执行。

相同的功能可以被多次注册。

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

该实现保证支持至少32个函数的注册。 确切的限制是实现定义的。

参数

功能

-

指向正常程序终止时要调用的函数的指针

返回值

如果注册成功,则返回​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标准(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):
    • 4.10.4.2 atexit函数

扩展内容

at_quick_exit(C11)

注册要在quick_exit调用(函数)上调用的函数

| 用于atexit的C ++文档 |

C

C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。