/* 测试代码,针对fork()。。。请看最后输出的结果。
if(pipe(fd)<0)
{
printf("if1 active\n");
}
*/
childpid=fork();
if ( 1)
{
printf("if2 active\n");
}
if(childpid==0)
{
printf("if3 active\n");
} else
{
printf("else active\n");
}
输出
if2 active
else active 这时候判断了childpid==0,结果不成立跳入else
if2 active 这是fork又来了
if3 active 这时候判断了childpid==0,结果成立执行。
总结: fork干了你没有预测到的事情。
fork后父子各返回一次