Я нашел этот код в geeks4geeks, и я не могу понять его правильно:
#include<stdio.h>
int main()
{
for(int i=0;i<5;i++) // loop will run n times (n=5)
{ pid_t c=fork();
if(c == 0)
{
printf("[son] pid %d from [parent] pid %d\n",getpid(),getppid());
exit(0);
}
}
for(int i=0;i<5;i++) // loop will run n times (n=5)
wait(NULL);
}
Этот код создает 5 процессов из родительского процесса и печатает сообщение от каждого дочернего элемента. Мой вопрос таков: поскольку мы не использовали никаких ограничений для c, например, это не вторая ветвь, выполняемая и отцом, и первым дочерним элементом Процесс? Без изоляции fork внутри кода отца, как этот код не создает 2 ^ 5 дочерних процессов? Цикл for каким-то образом останавливает это?