Почему при использовании системного вызова 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;
    }

Ответы на вопрос(4)

Ваш ответ на вопрос