IamはC言語でプログラミングし、プロセスをフォークする概念を学習しようとしていますが、btiamは次のプログラムの出力と混同されています。先に進むには、これに関する説明が必要です。
int main() {
pid_t pid;
24 int status, died;
25 switch(pid = fork()){
26 case -1: printf("Can't fork\n");
27 exit(-1);
28
29 case 0 : printf(" Child is sleeping ...\n");
30 sleep(5); // this is the code the child runs
31 //exit(3);
32
33 default:
34 printf("Process : parent is waiting for child to exit\n");
35 died = wait(&status); // this is the code the parent runs
36 printf("Child's process table cleared...\n");
37 }
38 return 0;
39 }
The output of the above program is :
Process : parent is waiting for child to exit
Child is sleeping ...
Process : parent is waiting for child to exit
Child's process table cleared...
Child's process table cleared...
ここで、この「子のプロセステーブルがクリアされた...」が2回発生する理由がわかりません。plsは説明します。
プラットフォーム:Linux、gccコンパイラ