我认为输出应该是第一个子进程应该执行第二个子进程,然后是父进程,但是在编译时它给出了第一个孩子的第一行,然后是第二个孩子的第一行,然后是第一个孩子的第二行和第二个孩子的第二行。这是有问题的代码:
#include<stdio.h>
int main() {
int pid,dip;
pid=fork();
if(pid==0) {
printf("1st child's process id is %d \n",getpid());
printf("first child dead");
} else {
dip=fork();
if(dip==0) {
printf("2nd child process id is %d\n",getpid());
printf("Second child dead");
} else {
printf("Child with pid %d died \n",wait(0));
printf("Child with pid %d died \n",wait(0));
printf("I am the parent");
}
}
return 0;
}