【发布时间】:2013-08-11 20:01:57
【问题描述】:
只是对子进程块中的父 pid 值感到困惑。我的程序如下:
int main(int argc, char *argv[])
{
pid_t pid;
pid=fork();
if(pid==-1){
perror("fork failure");
exit(EXIT_FAILURE);
}
else if(pid==0){
printf("pid in child=%d and parent=%d\n",getpid(),getppid());
}
else{
printf("pid in parent=%d and childid=%d\n",getpid(),pid);
}
exit(EXIT_SUCCESS);
}
输出: parent=2642 和 childid=2643 中的 pid
pid=2643 和 parent=1
在“高级 Unix 编程”中,它说子进程可以使用 getppid() 函数获取父进程 ID。但在这里我得到“1”,即“init”进程ID。
如何在子进程块中获取父 pid 值。请帮助我获取输出。
我在“Linux Mint OS”中执行,但在“WindRiver”操作系统中没有遇到这个问题。这个程序会根据操作系统改变行为吗?
【问题讨论】: