#include <stdio.h>
static void my_exit1();
static void my_exit2();
int main(void)
{
if(atexit(my_exit2) != 0)
printf("error: can't register my_exit2\n");
if(atexit(my_exit1) != 0)
printf("error: can't register my_exit1\n");
printf("main is done!\n");
return 0;
}
static void
my_exit1()
{
printf("first exit handler\n");
}
static void
my_exit2()
{
printf("second exit handler\n");
}
执行这个程序
$ ./a.out
main is done!
first exit handler
second exit handler
----------------------------------------------------------------
终止程序每登记一次,就会被调用一次。