#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
fork();
printf("hello\n");
fork();
fork();
return 0;
}
如果 fork() 系统调用创建一个从下一条指令开始执行的子进程,这不是意味着输出应该有 2 个“hello”语句吗?
是不是意味着第二次和第三次fork调用基本没用了?
我得到的输出是打印 8 个“hello”语句。
我的概念可能是错误的。请解释一下。
这应该打印 hello 两次。我刚刚运行这个,我只看到两个打印语句。
仔细检查您正在编译并运行正确的文件。也许尝试删除所有已编译的文件,包括
.o
文件,然后再次编译并运行。