有这样一段代码:
int main()
{
if(fork()==0){
print("a");
}
else{
printf("b");
waitpid(-1, NULL, 0);}
printf("c");
exit(0);
}
请问可能的输入有哪些?(这是深入理解计算机系统第二版P497的一个习题)
答案中说有四种可能,分别是
bacc
abcc
acbc
bcac
前三种我都能够想到,但是第四种真的能够发生吗?
我认为由于父进程执行waitpid函数,且第三个参数为0,因此在子进程终止后才能继续运行,也就是说,父进程的c不可能在a之前出现。
请问我是错的还是书中答案是错的?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。