2016-10-21 3 views
-1

Я использую две вилки в моем коде:Странный Родитель 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; 
} 

Но есть какое-то странное «Родитель ID» для «детей». Зачем? (Пожалуйста, обратитесь к скриншоте ниже)

enter image description here

Большое спасибо заранее.

ответ

1

В вашем случае родитель выполнил сначала, следовательно, был окончательно разорван. В этом случае ребенок становится сиротой, и, следовательно, его родительский идентификатор заменен идентификатором другого процесса в той же группе или ребенок получил повторный родительский учет. Идентификатор родительского идентификатора отличается (странным).

+0

Спасибо, помощник! Очень полезно. –