【发布时间】:2016-12-07 02:12:59
【问题描述】:
void main(){
if(fork()==0)
printf("a");
else{
printf("b");
waitpid(-1,NULL,0);
}
printf("c");
exit(0);
}
问题:程序的输出是什么?
一个。国歌
b. bcac
c。 abcc
d。巴克
e。 A 或 C 或 D(正确答案)
所以我想弄清楚为什么 C 是正确答案之一。以下是我的推理:
子进程先走后停止,把控制权交给父进程,('a'打印出来)
然后父进程因为waitpid()而执行(“b”打印出来),
父母通行证 在子进程(c 打印输出)中将控制权返回给子进程,然后子进程被收割。
最后,回到父进程“c”打印出来。所以我们有 abcc。
我说的对吗?
【问题讨论】:
-
也许我不知道我在说什么,但你确定 C 是正确的吗?好像应该是E。
-
E 是正确答案。