只是对子进程块中的父 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);
}
输出:pid in parent=2642 and childid=2643
孩子 = 2643 和父母 = 1 中的 pid
在“高级 Unix 编程”中,它说子进程可以使用 getppid() 函数获取父进程 ID。但在这里我得到“1”,即“init”进程ID。
如何在子进程块中获取父 pid 值。请帮助我获取输出。
我在“Linux Mint OS”中执行,但在“WindRiver”操作系统中我没有遇到这个问题。该程序是否会根据操作系统改变行为?