#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. Являются ли они оба дочерними элементами левого дочернего процесса? Правильный дочерний процесс? По одному на каждого?