Сколько процессов здесь разветвляются
Я знаю, что это может быть глупым вопросом, но может ли кто-нибудь помочь мне понять поведение следующего фрагмента кода
//label 0
int main(){
fork();//label 1
fork();//label 2
fork();//label 3
return 0;
}
Насколько я понимаю, дерево процессов идет так
[0]
/ | \
[1] [2] [3]
/ \ |
[2] [3] [3]
|
[3]
Я прав? В таком случае, я не понимаю, почему вторая вилка неt порождает процесс, соответствующий разветвлению метки 1, а третий разветвление нене порождает процесс дальше. Я имею в виду, что дочерний процесс является точной копией родителя (по крайней мере, в коде), поэтому он должен полностью выполнить код своего родителя. Может кто-нибудь, пожалуйста, помогите мне с этим замешательством ...