关于apue上的一段代码
4 #include"apue.h"
5 #include<sys/wait.h>
6 int main(void)
7 {
8 pid_t pid;
9 if((pid = fork()) < 0){
10 err_sys("fork error");
11 }else if(pid == 0){
12 if((pid = fork()) < 0)
13 err_sys("fork error");
14 else if(pid > 0)
15 exit(0);
16 sleep(2);
17 printf("second child,parent pid = %d\n",getpid());
18 exit(0);
19
20 }
21 if(waitpid(pid,NULL,0) != pid)
22 err_sys("waitpid error");
23 exit(0);
24 }
关于这段代码,书上说第一个子进程结束,这个子进程的子进程会被init领养,但是我的机器上没有领养,不知道哪里错了
可能是sleep时间太短了,我就sleep(9)也不行,代码错了吗?请问第一个子进程会执行printf("second child,parent pid = %d\n",getpid());吗?
------解决方案--------------------
是getppid吧,父进程PID==1.