当前位置: 技术问答>linux和unix
问一个关于fock的问题
来源: 互联网 发布时间:2016-05-22
本文导语: #include #include #include int main(void) { pid_t child; if (!(child = fork())) { printf("in childn"); exit(0); } printf("in parent -- child is %dn", child); return 0; } 以上程序段的输出可能是这样的吗? in parent -- child is 3708 in child ...
#include
#include
#include
int main(void) {
pid_t child;
if (!(child = fork())) {
printf("in childn");
exit(0);
}
printf("in parent -- child is %dn", child);
return 0;
}
以上程序段的输出可能是这样的吗?
in parent -- child is 3708
in child
如果可能,什么情况下会出现?
|
in parent -- child is 3708
in child
很正常啊.fork后,子,父进程并行运行,谁先输出结果都正常.
in child
很正常啊.fork后,子,父进程并行运行,谁先输出结果都正常.
#include
#include
#include
int main(void) {
pid_t child;
if (!(child = fork())) {
sleep(2); //这样你就可以让父进程先输出了.
printf("in childn");
exit(0);
}
printf("in parent -- child is %dn", child);
return 0;
}
|
fork后父子进程先后顺序是不确定的
除非人为加入同步条件
|
谁先都有可能的
除非用vfork()
或者父进程用wait等子进程
除非用vfork()
或者父进程用wait等子进程
|
LZ 是 掌柜,
难道是我们没理解到你的问题?
难道是我们没理解到你的问题?