gpt4 book ai didi

c - 为什么使用 fork() 调用的 c 程序不创建无限循环?

转载 作者:太空宇宙 更新时间:2023-11-04 00:16:05 26 4
gpt4 key购买 nike

int main(void)
{
printf("Hello, world! \n");
fork();
return 0;
}

为什么它只打印 2 个 hello worlds?如果系统执行函数 fork() 时创建了新进程,它需要永远打印“Hello, world!\n”吗?

最佳答案

这个程序应该打印一次Hello world。如果它打印两次,那是因为 line buffer 没有被清除。
行缓冲区应该被清除,因为你的 printf 中有 \n。它仍然没有被清除意味着这是关于你用来执行代码的平台。
您可以通过在 printf() 之后添加 fflush(stdout) 来验证这一点。

int main(void)
{
printf("Hello, world! \n");
fflush(stdout);
fork();
return 0;
}

关于c - 为什么使用 fork() 调用的 c 程序不创建无限循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51445451/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com