Ile procesów jest tutaj rozwidlonych

Wiem, że może to być głupie pytanie, ale czy ktoś może mi pomóc zrozumieć zachowanie następującego fragmentu kodu

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

O ile rozumiem, drzewo procesu wygląda tak

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

Czy mam rację? W takim przypadku jestem zdezorientowany, dlaczego drugi widelec nie wywołuje procesu odpowiadającego etykiecie 1, a trzeci widelec nie odradza żadnego procesu. Mam na myśli to, że proces potomny jest dokładną kopią rodzica (przynajmniej w kodzie), więc musi wykonać kod swojego rodzica w całości. Czy ktoś może mi pomóc w tym zamieszaniu ...

questionAnswers(4)

yourAnswerToTheQuestion