私はfork関数を完全に理解していませんが、fork()関数からの父子プロセスcontineoやこの行をスキップして次の行に行く方法はわかりません。例えば:私たちは、父が待機のために行く()関数fork関数を実装するが、私は子供が開始どこからかの()から実行するか、彼はそれを脱出して行くことにすることを理解していないものをこのプログラムの子供はどのように動くのですか?
int value = 0;
if (fork()!=0)
{
wait(&value);
value = WEXITSTATUS(value);
value++;
}
printf("%d\n",value);
value+=2;
exit(value);
すぐにprintfのために?プログラム全体を複製し、父と息子の両方が、父はif
の内側に入るfork()
から開始し、そのフォークの戻り値がnull以外であるため、そして
printf("%d\n",value);
value+=2;
exit(value);
に行く後にされ:)
試したときに何が起こったのですか? –
私は実際にはフォークを理解しようとしなかったし、この機能で何が起こるのだろうか – Eli
なぜそれを試してみませんでしたか?それを実行すると、その操作が実証されています。 –