fork()
"retorna duas vezes". No processo pai, ele retorna o PID do filho. No processo filho, ele retorna zero. Isto está assumindo que não houve erros. Isso significa que seu código, fazendo dois garfos, resultará em um total de quatro processos.
Os processos são idênticos em todas as formas, exceto nas formas descritas em fork(2)
( man 2 fork
).
Por exemplo, no código
while (1) {
A
B
C
fork();
}
as declarações A
, B
e C
serão executadas por um número cada vez maior de processos (na verdade, não escreva código como este, ele pode travar o sistema).
No seu exemplo, as instruções também existirão para execução pelos processos filhos, mas não há caminho de código que retorne a essas instruções. O processo filho, uma vez que é idêntico ao pai no momento da chamada para fork()
, começará a executar no ponto no código onde o fork()
foi chamado.