gpt4 book ai didi

C fork() - 此代码创建的唯一进程的数量是多少?

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

在下面的代码段中,创建了多少个唯一的进程?

pid t pid;
pid = fork();
if (pid == 0) {
fork();
}
fork();

根据我画的流程树,答案好像是6。我的推理对吗?

process tree

最佳答案

你的推理是正确的。从这段代码创建了 5 个进程,包括原始进程在内总共有 6 个进程。

为了验证,在上面的代码后添加如下两行:

printf("pid: %d, parent: %d\n", getpid(), getppid());
sleep(1);

在我的机器上打印了这个(添加了注释以使 pids 与你的树相匹配:

pid: 2638, parent: 2498      // 1
pid: 2639, parent: 2638 // 2
pid: 2640, parent: 2638 // 4
pid: 2641, parent: 2639 // 3
pid: 2642, parent: 2639 // 5
pid: 2643, parent: 2641 // 6

关于C fork() - 此代码创建的唯一进程的数量是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49101436/

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