このプログラムで作成するプロセスの数はわかりません。私はwhileループで3つの子プロセスを作成するつもりだと思います。次に、各子プロセスが2回フォークすることになります。つまり、2つの子プロセスと、その子プロセスによって作成されたプロセスがフォークし、各状態に対して4つの子プロセスが作成されます。合計で12のプロセスがあります。本当?フォーク()システムコールは、子供に親プロセスに子のPIDを返し、0ためこのコードが生成するプロセスの数はいくつですか?
#include <unistd.h>
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
int main(){
pid_t childpid;
int i=0;
while((childpid>0) && (i<3))
{
childpid=fork();
i++;
}
if(childpid==0){
fork();
fork();
}
exit(0);
}
用紙にトレースします。それは私がUniでオペレーティングシステム設計について学ぶときに何をしたのかです。 – StoryTeller
先週のコードスニペットを見たと思います.... –
'pid_t childpid = getpid();'がありません。 – jfs