在c中创建具有不同子进程的n-parent进程

时间:2018-02-12 17:48:28

标签: c fork

我正在尝试编写一个与他们的孩子一起创建N-parent进程的c程序,但是我创建了几个链接到父进程的子进程。我需要帮助更改代码以创建与子项一样多的父项。此外,该计划将等待所有子进程。谢谢你的帮助!下面你看到我的代码肯定需要改变。

int main(void)
{
  pid_t pid;
  int i, N=0;
  scanf("%d", &N);
  for(i=0;i<N;i++)
{
  pid = fork();
  switch(pid) {
   case -1:
   fprintf(stderr,"fork failed");
   exit (1);

   case 0:
    printf("I am the child with pid = %d\n",getpid());
    printf("My parent has pid = %d\n", getppid());
    sleep (20);
    exit(0);

   default:
    wait (0);
   }
 }
 return 0; 

}

1 个答案:

答案 0 :(得分:0)

您缺少的是对父进程和子进程的基本了解。我会尽力帮助解决这个问题,我相信你自己能够纠正自己的计划。

除了&#34; init&#34;进程每个进程都有一个父进程。您想要创建N个父进程,但是这些N个进程必须拥有父进程,直到它们不是&#34; init&#34;过程,你不能有一个以上的&#34; init&#34;过程

在你的情况下&#34; main&#34;应该是N个父进程的父进程(它们只是&#34; main&#34;进程的子进程),然后这些N个进程可以让它们的子进程处理。

我希望这些信息有所帮助。快乐编码:)