Wie viele Prozesse werden hier gegabelt?

Ich weiß, dass es eine dumme Frage sein könnte, aber könnte mir jemand helfen, das Verhalten des folgenden Codeausschnitts zu verstehen

//label 0
int main(){
  fork();//label 1
  fork();//label 2
  fork();//label 3
  return 0;
}

Soweit ich weiß, sieht der Prozessbaum so aus

              [0]
          /    |    \
        [1]   [2]   [3]
       /  \    |
      [2] [3] [3]
       |
      [3]

Habe ich recht? In diesem Fall bin ich verwirrt, warum die zweite Verzweigung keinen Prozess erzeugt, der der Verzweigung mit der Bezeichnung 1 entspricht, und die dritte Verzweigung keinen weiteren Prozess erzeugt. Ich meine, ein untergeordneter Prozess ist die exakte Kopie des übergeordneten Prozesses (zumindest im Code), daher muss er den Code des übergeordneten Prozesses vollständig ausführen. Kann mir bitte jemand bei dieser Verwirrung helfen ...

Antworten auf die Frage(4)

Ihre Antwort auf die Frage