_exit和exit的一个区别
_exit(0)直接退出,不刷新缓存区.系统调用
exit(0)先刷新缓存区后在退出.库函数
int main()
{
cout<<"in main,pid="<<getpid(); //<<endl;endl也是刷新缓存区
// fflush(stdout);
_exit(0);
}
上述代码加上注释则什么都不输出,去掉注释打印进程ID
atexit 注册在函数结束时调用的函数,输出顺序和注册顺序相反.
void exitHandler(void)
{
printf("If exit with exit,function1 be called\n");
}
void exitHandler2(void)
{
printf("if exit with exit,function2 be called\n");
}
int main()
{
cout<<"In main,pid="<<getpid()<<endl;
atexit(exitHandler);
atexit(exitHandler2);
exit(0);
}