Для каждого системного вызова, который вы создаете для создания клона текущего процесса. Таким образом, вы вызываете функцию fork 3 раза, что приведет к созданию 8 процессов. Расчет равен 2.
Если вы хотите напечатать сообщение «привет» 4 раза вам нужно изменить свой код:
int main()
{
int i;
for(i=0; i<2; i++){
fork();
}
printf("Hello\n\n");
}
Имейте в виду, что код, который вы должны будете создавать дочерние процессы зомби.
Используя этот код, вы можете создать n процессов, скажем, 4 и заставить отца ждать своего ребенка.
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <signal.h>
int main(int argc, char *argv[])
{
int pid, i;
for(i=0; i<4; i++)
{
if ((pid = fork()) == -1) {
perror(argv[0]);
exit(1);
}
if (pid == 0) {
printf("\n\nHello\n\n");
exit(0);
} else {
wait(NULL);
}
}
}
Это частый вопрос для интервью. Вы должны хотя бы попробовать запустить это приложение. –