gpt4 book ai didi

c - 简单的 C 我无法理解

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

对此感到抱歉,似乎无法理解这一小段 C 中发生的事情:

    #include <stdio.h>

main()
{
int i;
if (fork()) { /* must be the parent */
for (i=0; i<1000; i++)
printf("\t\t\tParent %d\n", i);
}
else { /* must be the child */
for (i=0; i<1000; i++)
printf("Child %d\n", i);
}
}

据我了解,它将打印 child 1000 次和 parent 1000 次,但显然它要复杂得多,我必须完全理解它!有人可以向我解释一下吗?另外,我将如何更改程序,使父子执行不同的计算?

非常感谢您对此的帮助:)

最佳答案

fork() 创建一个新进程。所以从那时起,将有两个独立的进程,它们都从 fork() 所在的代码点继续。在主进程中,fork() 返回新子进程的 PID,在子进程中它返回零。所以代码会在不同的进程中执行if语句的不同分支。

还请记住,新进程与线程不同。这些进程不会有任何全局变量或类似的共同点,但它们是完全独立的。但它们在其他方面是相同的。

关于c - 简单的 C 我无法理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4787846/

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