【发布时间】:2013-09-25 09:38:39
【问题描述】:
我已经执行了以下代码:
#include<stdio.h>
int main()
{
printf("hello \t");
fork();
fork();
return 0;
}
输出:hello hello hello hello
这是否意味着fork() 为子进程创建与父进程代码完全相同的副本,除了被执行的fork() 调用被消除?
这让我很困惑,因为我在某处研究过“fork() 从代码的下一行开始执行”。因此,如果这是真的,那么它应该创建 3 个子进程和 1 个父进程,并且应该只打印一次 "hello"。
请解决这个问题。
我在 gcc 编译器上运行了这段代码。
【问题讨论】: