最后的if 和else后边的语句都执行了吗?不是说if执行完了else就不执行了吗?(关于linux管道读写的)

2025-03-23 03:33:43
推荐回答(2个)
回答1:

/* 测试代码,针对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干了你没有预测到的事情。

回答2:

fork后父子各返回一次