int counter = 0;
int main()
{
int i;
for (i = 0; i < 2; i ++){
fork();
counter ++;
printf("counter = %d\n", counter);
}
printf("counter = %d\n", counter);
return 0;
}
counter
には7つのprintfsしか得られません。複数のフォークを使用したステートメントの印刷
どうすればいいですか?counter
を10回印刷しますか?
は私が視覚的に持っているもの厥:
____1____2__
|
_____fork |____1____2__
| __________1____2___
|fork|
| |
main__fork|____|_____________2_____
The numbers 1 and 2 represent `counter` printed by `printf`. Could anyone explain this (visually would be great) ?
私は理解しないどんな、例えば、なぜ最初のフォークでプリント1及び2と、ループ後にもう一回2。 2inループが私に混乱しています。 – ssss
@ssssもし 'fork()'コールを無視した場合(あるいはコメントアウトしてプログラムを実行すると)、プログラムは1 2 2を表示します。それに言いました。 – immibis