Quantos processos são bifurcados aqui
Eu sei que pode ser uma pergunta estúpida, mas alguém poderia me ajudar a entender o comportamento do seguinte trecho de código?
//label 0
int main(){
fork();//label 1
fork();//label 2
fork();//label 3
return 0;
}
Tanto quanto eu entendo, a árvore do processo é assim
[0]
/ | \
[1] [2] [3]
/ \ |
[2] [3] [3]
|
[3]
Estou certo? Nesse caso, estou confuso sobre o motivo pelo qual o segundo garfo não gera um processo correspondente ao garfo do rótulo 1 e o terceiro garfo não gera mais nenhum processo. Quero dizer, um processo filho é a cópia exata do pai (pelo menos no código), portanto, ele deve executar o código de seu pai em sua totalidade. Alguém pode me ajudar com essa confusão ...