gpt4 book ai didi

c - 关于 fork() 的问题

转载 作者:太空狗 更新时间:2023-10-29 16:40:47 25 4
gpt4 key购买 nike

<分区>

我试图理解 fork(),所以我整理了以下示例:

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

void main()
{
if(fork()==0)
{
printf("2");

if(fork()==0)
{
printf("4");
}
else
{
printf("3");
}
}
else
{
printf("1");
}
}

当我在纸上描绘这个时,我画了下面的草图:

enter image description here

所以我认为输出应该是 1234。 但是,当我运行这段代码时,输​​出是 12324这是为什么呢?我的错误在哪里?

更新:

阅读评论后,建议执行以下任一操作

  1. 在每个 printf 语句中添加 \n
  2. 或者:在每个 printf 语句之后添加 fflush(stdout);
  3. 或者:添加 setbuf(stdout, NULL); <---- 这就是我最终做的 :)

更新我的代码后,输出确实是 1234。

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