今、fork()
システムコールの仕組みを理解するのに問題があります。次のコードを書きます。
#include<stdio.h>
int main()
{
int a, b;
b=fork();
printf("\n the value of b = %d",b);
}
このコードの出力は次のとおりです。
出力がこのようになる理由がわかりませんか?
その後、コードに行を追加するだけで、出力がまったく異なります。私のコードは次のとおりです。
int main()
{
int a, b;
b=fork();
コードを実行すると、出力は次のようになります 2389my name is manish
the value of b = 0
今、私はfork()
呼び出しの働きについて完全に混乱しています。
私の質問は次のとおりです。
- どのように
fork()
動作しますか? fork()
呼び出しの後、コントロールはどこに行きますか?- 問題で書かれたコードの出力の理由を説明できる団体はありますか?
- の出力が
b
異なる場所で発生するのは、最初のコードで の出力が出力のb = 2260
直前にありb = 0
、 の値が のb = 2389
直前ではないことを意味するのはなぜb = 0
ですか?
問題 に 書か れ て いる コード の fork の 働き を 説明 し て ください .