函数名: atexit
头文件:#include<stdlib.h>
功 能: 注册终止函数(即main执行结束后调用的函数)
用 法: int atexit(void (*func)(void));
注意:exit调用这些注册函数的顺序与它们 登记时候的顺序相反。同一个函数如若登记多次,则也会被调用多次。
#include "apue.h"
static void my_exit1(void);
static void my_exit2(void);
int main(void)
{
if(atexit(my_exit2)!=0)
{
err_sys("can't register my_exit2");
}
if(atexit(my_exit1)!=0)
{
err_sys("can't register my_exit1");
}
if(atexit(my_exit1)!=0)
{
err_sys("can't register my_exit1");
}
printf("main is done\n");
return (0);
}
static void my_exit1(void)
{
printf("my_exit1 exit handler\n");
}
static void my_exit2(void)
{
printf("my_exit2 exit handler\n");
}
jiang@AY140524110335068908Z:~/new_apue$ gcc exit.c -o exit.o
jiang@AY140524110335068908Z:~/new_apue$ ./exit.o
main is done
my_exit1 exit handler
my_exit1 exit handler
my_exit2 exit handler