gpt4 book ai didi

linux - fork() 之后的 Printf() 和有条件的只打印一次?

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

所以我正在尝试学习 fork() 调用,老实说,我对这个子进程和父进程的工作方式感到困惑。以下是部分代码:

int main()
{
pid_t pid;

pid = fork();

if (pid == 0) {
value = ChildProcess(value);
return 0;
}
else if (pid > 0) {
value = ParentProcess(value);
}

printf("\nThe value is %d",value);
return 0;
}

现在输出应该给我父值和子值,并且由于没有 wait() 调用,可以先打印父值或子值。但令我困惑的是,为什么 printf 语句只打印一次??既然 fork 调用基本上创建了一个重复的程序,它不应该被打印两次吗??

最佳答案

因为调用ChildProcess后从子进程返回,所以不走printf

关于linux - fork() 之后的 Printf() 和有条件的只打印一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39352308/

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