Почему при использовании системного вызова fork выдается много идентификаторов PID?
Я изучаю управление процессами в Linux, и я попытался реализовать следующую программу на C, в результате которой было напечатано 15 PID (4 уникальных PID). Я попытался выяснить семейное древо процесса, но оно действительно не помогло мне понять, почему идентификаторы PID печатались так много раз. Я прошел несколько ссылок, в том числеhttp://u.cs.biu.ac.il/~linraz/os/OS2.pdf, http://www.ibm.com/developerworks/aix/library/au-unixprocess.html , Кто первым выполняет после fork (): родитель или потомок? , Но я не мог найти решение. Было бы очень полезно, если бы кто-нибудь помог мне понять эту проблему.
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
int main()
{
printf ( "Parent:%d Child: %d\n",getppid(),getpid()); // To print the PIDs of the parent process and the child process
fork(); //System call to spawn a child process
printf ( "Parent:%d Child: %d\n",getppid(),getpid());
fork();
printf ( "Parent:%d Child: %d\n",getppid(),getpid());
fork();
printf ( "Parent:%d Child: %d\n",getppid(),getpid());
return 0;
}