#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
----------------------------------------------------------------
终止程序每登记一次,就会被调用一次。
本文通过一个C语言程序示例介绍了如何使用atexit函数注册退出处理程序,并展示了多个处理程序的调用顺序。当程序正常退出时,这些处理程序会按照相反的注册顺序被调用。
1274

被折叠的 条评论
为什么被折叠?



