时间过得快 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进程?

    评论

报告相同问题?

悬赏问题

  • ¥15 想问一下stata17中这段代码哪里有问题呀
  • ¥15 flink cdc无法实时同步mysql数据
  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决