小编lma*_*ofl的帖子

为什么带有 fork() 的程序有时会多次打印其输出?

在程序 1 中Hello world只打印一次,但是当我删除 \n并运行它时(程序 2),输出被打印了 8 次。有人可以向我解释一下\n这里的重要性以及它如何影响fork()?

方案一

#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>

int main()
{
    printf("hello world...\n");
    fork();
    fork();
    fork();
}
Run Code Online (Sandbox Code Playgroud)

输出 1:

hello world... 
Run Code Online (Sandbox Code Playgroud)

方案二

#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>

int main()
{
    printf("hello world...");
    fork();
    fork();
    fork();
}
Run Code Online (Sandbox Code Playgroud)

输出 2:

hello world... hello world...hello world...hello world...hello world...hello world...hello world...hello world...
Run Code Online (Sandbox Code Playgroud)

c fork

57
推荐指数
4
解决办法
2万
查看次数

标签 统计

c ×1

fork ×1