gpt4 book ai didi

c - 父进程如何等待所有子进程终止

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

<分区>

我是 C 的新手,所以我只知道简单的函数。(例如:wait(NULL))。

这是我的主要问题:

Modify the program so that only the parent process creates 3 child processes, and each new created process calls a function CPU(). In addition, make the parent process wait for each child’s termination.

我知道这个是正确答案

#include<stdio.h>

int main(void)
{
int i ;

for( i = 0; i < 3; i++)
{
int ret = fork();
if(ret == 0){
printf("My process ID is %d\n", getpid());
return 0;
}

}

for (i = 0; i < 3; i++) //Line B
wait(NULL);
}

但我的问题是

  1. 为什么wait在循环中被parent执行时下面的代码是错误的

    #include <stdio.h>

    int main(void)
    {
    int i ;

    for( i = 0; i < 3; i++)
    {
    int ret = fork();

    if(ret == 0) {
    printf("My process ID is %d\n", getpid());
    return 0;
    }
    else
    wait(NULL);
    }
    }
  2. 在最开始的代码中,为什么我们要在 for 循环中编写 wait(NULL)?我们不能不使用 for 循环来写吗

  3. 如果子进程中没有“return 0”,for循环是否应该改为

    for (i = 0; i <7; i++)
    wait(NULL);
  4. 我不会写CPU函数

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