/*
调用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键,表示不大清楚.......