您的位置:首页 > 产品设计 > UI/UE

apue 8-5调用fork两次以避免僵死进程

2014-11-18 01:14 453 查看
/*
调用fork两次以避免僵死进程
*/
#include "apue.h"
#include <sys/wait.h>

int main(void)
{
pid_t pid;
if((pid=fork()) < 0)
{
err_sys("fork error");
}
else if(pid == 0)
{
if((pid=fork()) < 0)
err_sys("fork error");
else if(pid > 0)
{
exit(0); // 第一个子程序退出
}
sleep(20);
printf("second child, parent pid=%d\n", getpid());
exit(0); // 第二个子程序退出
}
if(waitpid(pid, NULL, 0) != pid)
err_sys("waitpid error");
exit(0);
}

不知道为什么没有显示书中所显示的效果,怀疑了可能是exit(0)不能使主程序完全对出吧

需要人工输入enter键,表示不大清楚.......
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: