跳转到内容

C 编程/stdlib.h/atexit

来自维基教科书,自由的教科书

atexit(在退出时)是一个 C 编程语言中的函数,用于注册给定的函数,以便在正常进程终止时执行,无论是通过 exit 还是通过从程序的 main 函数返回。

atexit 函数以要注册的回调函数的引用作为参数。这样注册的函数按注册顺序的相反顺序调用;不传递任何参数。

POSIX 使用

[编辑 | 编辑源代码]

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.

[编辑 | 编辑源代码]
华夏公益教科书