создание дочернего узла с помощью системного вызова usign fork()

#c #process #operating-system #fork

#c #процесс #операционная система #вилка #fork

Вопрос:

Я пытаюсь создать 5 дочерних узлов с помощью системного вызова fork(). Я хочу создать 5 дочерних узлов. Но я получил ошибку. Как я могу это исправить?

Сколько дочерних процессов создано с помощью этого кода?

Мой код:

 int i;
for(i=0;i<4;i  ){
int p_id = fork();
if (p_id==0){
p_id = fork();
break;
}
}
 if(p_id==0 amp;amp; i%2 == 0){
  int j;
  for(j=0; j<2; j  ){
  p_id = fork();
  if (p_id==0) break;
  }
  }
  sleep();
  

Комментарии:

1. Какую форму дерева процессов вы хотите? В настоящее время вы вызываете fork намного больше, чем необходимо.

2. Затем у вас есть 1 процесс на уровне 1, 2 процесса на уровне 2, и вы должны распределить оставшиеся 2 процесса по уровню 3. Являются ли они оба дочерними элементами левого дочернего процесса? Правильный дочерний процесс? По одному на каждого?