atexit

atexit

在头文件中定义
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):

扩展内容

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

| 用于atexit的C ++文档 |