在看一个应用程序时,一个open_xx( )函数的最后一句是atexit(close_func),刚开始不明白,为什么在一个打开的函数中会调用退出函数呢?应该在close函数中才对啊。后来查资料才知道,atexit只是用来注册函数,只有当整个main函数退出时,才会调用atexit,来清理掉注册的函数。
如:
void close_xx(void)
{
printf("function exit\n");
}
int main()
{
atexit(close_xx);
printf("exit progarm\n");
}
运行这个函数结果为:
exit program
function exit
虽然atexit写在前,但它却是最后执行的。