C 编程/stdlib.h/atexit
外观
atexit(在退出时)是一个 C 编程语言中的函数,用于注册给定的函数,以便在正常进程终止时执行,无论是通过 exit 还是通过从程序的 main 函数返回。
atexit
函数以要注册的回调函数的引用作为参数。这样注册的函数按注册顺序的相反顺序调用;不传递任何参数。
atexit
函数由 POSIX 规范标准化。
函数原型如下
int atexit(void (*function)(void));
如果函数成功完成执行,它将返回零 (0)。非零返回值表示错误。
POSIX 要求 atexit
的实现至少允许注册 ATEXIT_MAX (32) 个此类函数。
以下示例演示了 atexit
函数的使用。
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
void end(void) {
printf("[ DONE ]\n");
}
int main(){
long ret;
ret = sysconf(_SC_ATEXIT_MAX);
printf("ATEXIT_MAX = %ld\n", ret);
if( atexit(end) != 0 ) {
perror("Unable to set exit function\n");
return EXIT_FAILURE;
}
printf( "About to quit... " );
return EXIT_SUCCESS;
}
ISO/IEC 9899:1999 规范 (PDF). p. 315, § 7.20.4.2.