Linuxでのシステムプログラミングを勉強していて、fork()のところでこのようなコードを見かけました。
(前略)
int main(void){
auto id1 = fork();
std::cout<<"ID1:"<<id1<<'\n';
auto id2 = fork();
std::cout << "ID2:" <<id2<<'\n';
}
コンパイルして実行した結果は
id1:14181
id2:14182(親プロセスの結果)
id1:0
id2:14183(子プロセス14181の結果)
id2:0(子プロセス14182の結果)
id2:0(子プロセス14183の結果)
これはつまり、fork()によって行われる親プロセスの複製というのは、fork()が呼ばれた後の部分のみが複製されるということでしょうか。fork()の処理の流れがいまいち腑に落ちないです...
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/09 16:33