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 ...