时间过得快 2018-06-20 12:46 采纳率: 50%
浏览 590
已结题

关于apue的疑问,输出和我想的不一致

在看APUE时,照8-8例敲了如下代码

 #include"apue.h"
#include<error.c>
#include <sys/wait.h>

int main(void)
{
    pid_t pid;
    if((pid = fork()) < 0)
        err_sys("fork error");
    else if(pid == 0)
    {
        if((pid= fork()) < 0)
            err_sys("fork error");
        else if(pid > 0)
            exit(0);

        sleep(4);
        printf("second child, parent pid = %ld\n",(long)getppid());
        exit(0);
    }

    if(waitpid(pid, NULL, 0) != pid)
        err_sys("waitpid error");

    exit(0);
}

输出second child, parent pid = 2372
按理说,第一个子进程结束,第二个子进程的父进程应该是init进程,pid = 1,
为啥我这个总是等于2372呢

  • 写回答

3条回答 默认 最新

  • 时间过得快 2018-06-20 12:57
    关注

    root@jack:/opt/unix/180620# ./fork2.out
    parent, pid = 55370
    first child, parent pid = 55371
    second child,pid =55372, parent pid = 2372
    我把每个进程id都打印出来了,难道2372就是我的init进程?

    评论

报告相同问题?

悬赏问题

  • ¥20 用keil,写代码解决两个问题,用库函数
  • ¥15 ChatGPT网络被篡改怎么办?
  • ¥50 ID中开关量采样信号通道、以及程序流程的设计
  • ¥15 U-Mamba/nnunetv2固定随机数种子
  • ¥15 vba使用jmail发送邮件正文里面怎么加图片
  • ¥15 vb6.0如何向数据库中添加自动生成的字段数据。
  • ¥20 在easyX库下编写C语言扑克游戏跑的快,能实现简单的人机对战
  • ¥15 svpwm波形异常求解答
  • ¥15 STM32——硬件IIC从机通信代码实现
  • ¥15 微生物组数据分析--微生物代谢物