Warum werden bei der Verwendung des Fork-Systemaufrufs viele PIDs gedruckt?

Ich lerne das Prozessmanagement unter Linux und habe versucht, das folgende C-Programm zu implementieren, dessen Ausgabe 15 PIDs (4 eindeutige PIDs) druckte. Ich habe versucht, den Prozessfamilienbaum herauszufinden, aber es hat mir nicht wirklich geholfen zu verstehen, warum die PIDs so oft gedruckt wurden. Ich bin durch ein paar Links gegangen, einschließlichhttp://u.cs.biu.ac.il/~linraz/os/OS2.pdf, http://www.ibm.com/developerworks/aix/library/au-unixprocess.html , Wer führt zuerst nach fork () aus: Eltern oder Kind? . Aber ich konnte die Lösung nicht finden. Es wäre eine große Hilfe, wenn mir jemand hilft, dieses Problem zu verstehen.

    #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;
    }

Antworten auf die Frage(4)

Ihre Antwort auf die Frage