找回密码
 注册
查看: 826|回复: 4

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

[复制链接]
发表于 2005-10-14 13:57:15 | 显示全部楼层 |阅读模式
我想在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 14:23:20 | 显示全部楼层
进程间通讯
回复

使用道具 举报

 楼主| 发表于 2005-10-14 17:44:53 | 显示全部楼层
可以了,谢谢!

又学了一些 ^_^
回复

使用道具 举报

发表于 2005-10-18 07:31:13 | 显示全部楼层
Mozilla 版主就这水平呢,还是根本没看题目?

[code:1]pid_t chd_pid;// 应该使用特殊类型 pid_t

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

}
else {
  // 父进程。在这里 fork() 的返回,也就是 pid 的值,就是子进程的 PID
} [/code:1]
回复

使用道具 举报

发表于 2005-10-18 13:45:17 | 显示全部楼层
水平有限
回复

使用道具 举报

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

本版积分规则

GMT+8, 2025-2-7 19:49 , Processed in 0.024242 second(s), 16 queries .

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5.

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