c - 为什么 fork() 会调用这个 print 语句?

标签 c fork

在这个 C 程序中,我得到了我无法理解的输出。

#include <stdio.h>

int main()
{
    printf("Hello World\n");
    printf("%d\n", fork());
    return 0;
}

它输出:

Hello World
5
Hello World
0

我的问题是,为什么它会打印“Hello World”两次?根据我的理解,它将打印“Hello World”,然后调用 fork()。

fork()是从程序开头开始吗?

最佳答案

如果您阅读了手册页,fork 会向父级和子级返回一个值。而且它并不是从程序一开始就开始的。

请查看 fork 的手册页

关于c - 为什么 fork() 会调用这个 print 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47144068/

相关文章:

c - Linux x86-64 fork syscall 针对 C 标准 libc FILE I/O 的奇怪行为(关键字 : fork, fclose,linux)

c - 如何为 UHF 电视信号建模?

c - 选择性调用写包装器

c - 如何忽略所有小于第一个参数值的输入,然后传递给数组/函数? (C语言)

c - pmap 和 fork : where is my copy on write flag?

perl - 我可以让一个从浏览器启动的 Perl 脚本 fork 自身,而不是等待 child 结束吗?

c - 一个数组影响另一个,两个数组分别声明

c - 如何直接访问显卡的输出?

git - 这里有人 fork 吗?

c - C中的多个管道