LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1231|回复: 5

请教:子进程中获得的pid,怎么才能保留下来,在父进程中使用?

[复制链接]
发表于 2005-10-14 13:53:09 | 显示全部楼层 |阅读模式
我想在fork之后,在子进程执行时,将该子进程的pid保留下来,用于回到父进程后使用。

           int chd_pid;//

        if ((pid = fork ()) < 0) {
                perror ("fork");
                exit (1);
        } else if (pid == 0) { /* child process */
                                chd_pid = getpid();//这个值在退出子进程后,就为任意值了

                int fd = open ("/dev/null", O_WRONLY);
                if (fd < 0) {
                        perror ("open /dev/null");
                } else {
                        if (dup2 (fd, 1) < 0 || dup2 (fd, 2)) {
                                perror ("dup2");
                        }
                }
                }

请问,我怎么样才能把那个chd_pid保留下来?

谢谢了!
发表于 2005-10-14 17:39:13 | 显示全部楼层
pid=fork()
pid不就是子进程号么
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-14 18:00:27 | 显示全部楼层
fork()返回的不是子进程的pid号
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-14 18:02:46 | 显示全部楼层
我已经知道了,用了进程的通信

初学,用了一下管道
回复 支持 反对

使用道具 举报

发表于 2005-10-16 14:43:22 | 显示全部楼层
Post by Annie0716
fork()返回的不是子进程的pid号


父进程返回子进程的pid,子进程返回0
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-17 13:20:27 | 显示全部楼层
谢谢更正!
我原来理解错了。

查了一下,应该是这样:“如果fork执行成功,向父进程返回子进程的PID,并向子进程返回0。”
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表