我想下面的C代码:需要知道叉如何工作?
int main()
{
printf("text1\n");
fork();
printf("text2\n");
return 0;
}
我期待得到的输出从哪里获得两个“text1”中的两个“文本2”,如:
text1
text1
text2
text2
但是,我是,而是得到:
text1
text2
text2
只有一个“text1”??? 好吧,如果子进程从叉(执行),那么为什么我得到两个“text1”中的以下内容:
int main()
{
printf("text1");
fork();
printf("text2\n");
return 0;
}
输出现在是:
text1text2
text1text2
如果子进程后启动叉,输出应该是:
text1
text2
text2
为什么你会期望两个“text1”的副本?只有*一个*过程,直到你碰到'fork'。 – dmckee 2011-05-15 22:20:03
男人叉? (..........) – 2011-05-15 22:20:22
@ user749391:代码按预期工作。像你这样的问题在你真正解释*为什么期望看到两个“text1”之前不能有效回答。 – AnT 2011-05-15 22:24:41