mi unisco al topic (se pure vecchiotto) dato che anche io sto affrontando questo argomento.la cosa pazzesca e molto strana è che pur copiando lo stesso codice ottengo un output diverso.
codice:
Inizio programma
Processo Padre: [600]
Sono il processo figlio PID=[601] generato dal padre PID=[600]
Sono il processo figlio PID=[602] generato dal padre PID=[1]
perché invece di ottenere il PID del procesos padre ottengo 1?che vuol dire?eppure il codice è lo stesso a quello proposto
codice:
include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#define NPR 2
int main (void)
{
int i;
pid_t child_pid[2];
printf("Inizio programma\n");
printf("Processo Padre: [%d]\n", getpid());
for(i=0;i<NPR;i++)
{
if((child_pid[i]=fork())==0) //ci troviamo nel contesto del figlio
{
printf("Sono il processo figlio PID=[%d] generato dal padre PID=[%d]\n", (int) getpid(), (int) getppid());
exit(0);
}
}
return 0;
}