Fork()系统调用流程

问题描述 投票:0回答:1
#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”语句。

我的概念可能是错误的。请解释一下。

c operating-system
1个回答
0
投票

这应该打印 hello 两次。我刚刚运行这个,我只看到两个打印语句。

仔细检查您正在编译并运行正确的文件。也许尝试删除所有已编译的文件,包括

.o
文件,然后再次编译并运行。

© www.soinside.com 2019 - 2024. All rights reserved.