stavo correndo il programmaPerché getppid() dal ritorno bambino 1
#include<stdio.h>
#include <unistd.h>
main()
{
pid_t pid, ppid;
printf("Hello World1\n");
pid=fork();
if(pid==0)
{
printf("I am the child\n");
printf("The PID of child is %d\n",getpid());
printf("The PID of parent of child is %d\n",getppid());
}
else
{
printf("I am the parent\n");
printf("The PID of parent is %d\n",getpid());
printf("The PID of parent of parent is %d\n",getppid());
}
}
l'uscita ho ottenuto è stato.
$ ./a.out
Hello World1
I am the parent
The PID of parent is 3071
The PID of parent of parent is 2456
I am the child
The PID of child is 3072
The PID of parent of child is 1
non potevo capire la linea di
il PID del genitore del bambino è 1
avrebbe dovuto essere 3071?
Si osserverà il comportamento che ci si aspetta aggiungendo appropriato 'fflush (NULL);' (prima di 'fork') e' sleep (1); 'chiama (in entrambe la parte then e else di' if', e poco prima della fine di 'main'). –