_exit 和 exit 最大的区别在于后者在结束进程时会刷新缓存区,前者则不会刷新缓存区;
#include <stdio.h>
#include <unistd.h>
#include <sys/wait.h>
#include <sys/types.h>
int main(int argc, const char *argv[])
{
pid_t pid;
if( (pid = fork()) < 0)
{
perror("fork error");
exit(1);
}
else if(pid == 0)
{
printf("hello world");
exit(0);
//_exit(0);
}
else if(pid > 0)
{
waitpid(pid, NULL, 0);
}
return 0;
}
我们分别调用exit与_exit函数,分别编译执行后如下:
exit:
输出了hello world。
_exit:
什么都没输出,直接结束。
本文探讨了_exit和exit函数之间的主要区别:前者不刷新缓存区而后者会刷新。通过一个简单的C程序示例展示了这两种函数在进程结束时的行为差异。
240

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



