奇怪的Parent ID
Strange Parent ID
我在我的代码中使用了两个分支:
int main()
{
cout<<"Main Process ID is: "<<getpid()<<endl;
int processID;
processID = fork();
cout<<"Part 1"<<endl;
cout<<"PID is: "<<getpid()<<" Child PID: "<<processID<<" Parent PID: "<<getppid()<<endl;
processID = fork();
cout<<"Part 2"<<endl;
cout<<"PID is: "<<getpid()<<" Child PID: "<<processID<<" Parent PID: "<<getppid()<<endl;
return 0;
}
但是"children"有些奇怪"Parent ID"。为什么? (请参考下方截图)
非常感谢。
在您的情况下,parent 首先执行,因此最终终止。在这种情况下,child 成为孤儿,因此它的 parent id 被同一组中其他进程的 id 替换,或者 child 得到 re-parented。因此,parent id 不同(奇怪)。
我在我的代码中使用了两个分支:
int main()
{
cout<<"Main Process ID is: "<<getpid()<<endl;
int processID;
processID = fork();
cout<<"Part 1"<<endl;
cout<<"PID is: "<<getpid()<<" Child PID: "<<processID<<" Parent PID: "<<getppid()<<endl;
processID = fork();
cout<<"Part 2"<<endl;
cout<<"PID is: "<<getpid()<<" Child PID: "<<processID<<" Parent PID: "<<getppid()<<endl;
return 0;
}
但是"children"有些奇怪"Parent ID"。为什么? (请参考下方截图)
非常感谢。
在您的情况下,parent 首先执行,因此最终终止。在这种情况下,child 成为孤儿,因此它的 parent id 被同一组中其他进程的 id 替换,或者 child 得到 re-parented。因此,parent id 不同(奇怪)。