gpt4 book ai didi

c - 这个程序创建了多少个进程?

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

#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
int main ()
{
int i = 3;
int pid;
while(i > 0) {
pid = fork();
if(pid > 0) {
exit(0);
} else {
i--;
}
}
}

该程序创建了多少个进程???我仍然对 fork() 系统调用感到困惑,有人可以帮我解释一下吗?

最佳答案

fork() 做什么?

fork() 是一个有趣的调用。您可以将其视为将程序状态克隆为两个完全相同的副本——它们之间的唯一区别是 fork() 的返回值。执行 fork() 的进程接收新进程的进程 ID (pid),而新进程接收 0

考虑到这一点:

创建了多少进程?

每次 fork 时,都会创建一个新进程并退出父进程。因此,您这样做了三次——三个进程通过 fork 创建。当然,这不包括您通过启动流程开始的那个。 :)

关于c - 这个程序创建了多少个进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19533233/

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