У меня есть родительский процесс, из которого я хочу создать 4 дочерних процесса, а 2 из дочерних процессов - по одному дочернему процессу.Родительский процесс имеет несколько дочерних процессов и дочерний процесс имеет дочерний процесс
Мне удалось создать 4 дочерних процесса от родителя. Но когда я пытаюсь создать дочерние процессы для 2 дочерних процессов, у меня есть бесконечный цикл. Я использовал цикл для создания 4 процессов и добавил условие, когда создается второй дочерний процесс и четвертый дочерний процесс, создайте дочерний процесс для каждого из них.
- Родитель имеет (child1 chil2 child3 ребенка 4)
- Child2 имеет (ребенок 5 ребенка6)
Источник:
#include <stdio.h>
#include <unistd.h>
#include <sched.h>
#include <sys/time.h>
#include <sys/resource.h>
int main(int argc, char **argv)
{
int i;
for(i = 0; i <= 3; i++)
{
if(fork() == 0)
{
printf("process %d and his parent is %d \n",
getpid(), getppid());
if(i = 1)
{
if(fork() == 0)
{
printf("process %d and his parent is %d \n",
getpid(), getppid());
break;
}
}
}
}
return 0;
}
Опубликовать минимальный код. Не могу понять, что вы сделали неправильно. –
#include #include #include #include #include INT основных (INT ARGC, символ ** ARGV) { INT I; для (i = 0; i <= 3; i ++) { if (fork() == 0) { printf ("процесс% d и его родительский элемент% d \ n", getpid(), getppid()); \t \t, если (I = 1) { \t \t \t, если (вилка() == 0) { \t \t \t Е ("Процесс% d и его родитель% d \ п", GETPID(), getppid ()); \t \t \t \t break; \t \t \t} \t \t \t}} } возврата 0; } –
Kazaloco
Система работает! Теперь у вас уже два раза возобновляются голоса, когда вы разместили код. В комментарии не менее :) –