我正在尝试编写一个 C 程序来创建 N 父进程及其子进程,但实际发生的情况是我创建了多个链接到父进程的子进程。我需要帮助更改代码以创建与 child 一样多的 parent 。此外,程序将等待所有子进程。感谢您的帮助!下面你可以看到我的代码,其中肯定需要更改。
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;
}
最佳答案
您缺少对父进程和子进程的基本理解。我会尽力帮助您解决这个问题,并且我相信您将能够自己纠正您的程序。
除了“init”进程之外,每个进程都有一个父进程。您想要创建 N 个父进程,但这 N 个进程必须有一个父进程,直到它们不是“init”进程,并且您不能有多个“init”进程。
在您的情况下,“main”应该是您的 N 个父进程的父进程(它们只不过是“main”进程的子进程),然后这 N 个父进程可以拥有它们的子进程。
我希望这些信息有帮助。快乐编码:)
关于在c中创建具有不同子进程的n父进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48752495/