atexit

设置程序正常结束前调用的函数, 这些函数将由exit自动调用

头文件

#include < stdlib.h >

函数原型

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

函数说明

一个进程可以登记至少可以至32个终止处理程序, 通过sysconf函数可以查看数量

当程序通过调用exit()或从main中返回时,参数function所指定的函数会先被调用,然后才真正由exit()结束程序。

exit调用这些函数的顺序与它们的登记顺序相反。同一函数如若登记多次也会被调用多次。

返回值

若成功,返回0;若出错,返回非0,失败原因存于errno中。

范例

#include <stdio.h>
#include <stdlib.h>

void before_exit(void) {
    printf("before_exit\n");
}
void clean(void) {
    printf("before_clean\n");
}
int main(int argc, char *argv[]) {

    atexit(before_exit);
    atexit(clean);
    return 0;
}

执行

bogon:process xqhero$ ./atexit
before_clean
before_exit
文档更新时间: 2021-03-03 23:25   作者:周国强