gpt4 book ai didi

c - 如何用C语言创建进程链?

转载 作者:行者123 更新时间:2023-11-30 21:20:28 26 4
gpt4 key购买 nike

我需要创建 5 个进程,其中一个是第二个进程的父亲,第三个进程的爷爷等等。所有进程都必须等待彼此完成。我尝试了以下方法:

switch (pid = fork()) {
case 0:
printf("Child PID = %d\n", getpid());
printf("parent: =\%d\n", getppid());
return 0;

default:
break;

但我总是得到同一个 parent 。

最佳答案

您需要使用递归。

例如:

void create_processes(int n) {
if(n == 0) return;
if(fork() == 0) {
int status;

// You're in the child process. Calling it recursively will have the
// child's PID as parent
create_processes(n - 1);

// Do work you need done before the child terminates
wait(&status);
// Do work you need done after the child terminates
}
}

然后这样调用它

create_processes(5);

关于c - 如何用C语言创建进程链?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37769673/

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