Quando eseguo il codice qui sottogetpid e getppid restituire due valori diversi
#include <stdio.h>
#include <sys/types.h>
//int i=0;
int main(){
int id ;
id = fork() ;
printf("id value : %d\n",id);
if (id == 0)
{
printf ("Child : Hello I am the child process\n");
printf ("Child : Child’s PID: %d\n", getpid());
printf ("Child : Parent’s PID: %d\n", getppid());
}
else
{
printf ("Parent : Hello I am the parent process\n") ;
printf ("Parent : Parent’s PID: %d\n", getpid());
printf ("Parent : Child’s PID: %d\n", id);
}
}
La mia uscita è
id value : 20173
Parent : Hello I am the parent process
Parent : Parent’s PID: 20172
Parent : Child’s PID: 20173
id value : 0
Child : Hello I am the child process
Child : Child’s PID: 20173
Child : Parent’s PID: 1
Come può PID del genitore (20172) diverso dal ID del genitore del bambino (1) ? Non dovrebbero quei due essere uguali?
Oppure, più convenzionalmente, wait() e waitpid(). – user314104
@Jackson ha aggiunto ulteriori informazioni con il collegamento. Sento che è necessario completare la tua buona risposta. se non ti piace tornare indietro. –