我正在尝试编写一个与他们的孩子一起创建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;
}
答案 0 :(得分:0)
您缺少的是对父进程和子进程的基本了解。我会尽力帮助解决这个问题,我相信你自己能够纠正自己的计划。
除了&#34; init&#34;进程每个进程都有一个父进程。您想要创建N个父进程,但是这些N个进程必须拥有父进程,直到它们不是&#34; init&#34;过程,你不能有一个以上的&#34; init&#34;过程
在你的情况下&#34; main&#34;应该是N个父进程的父进程(它们只是&#34; main&#34;进程的子进程),然后这些N个进程可以让它们的子进程处理。
我希望这些信息有所帮助。快乐编码:)