Salve, ho un problema a far funzionare la fork per creare dei processi. Il mio scopo è avere il processo padre che crea 2 processi figli ognuno dei quali stampa una stringa. Ho scritto questo codice, in cui in un ciclo for il padre esegue la fork creando un figlio ad
ogni iterazione:
Io mi aspetterei di vedere stampate in qualche ordine le stringhe "Inizio" "uno" "due",Codice PHP:#include <unistd.h>
# include <stdio.h>
int main( int argc, char **argv)
{
printf("\nInizio");
int pid = 1;
int testNumber;
for(testNumber = 0; ((testNumber < 2) && (pid != 0)); testNumber++){
pid = fork();
}
//Se sono il figlio pid vale zero e quindi stampo
if(pid == 0){
if(testNumber == 1){
printf("\nuno");
}
if(testNumber == 2){
printf("\ndue");
}
}
return 0;
}
ivece ottengo:
Inizio Inizio Inizio uno due
Come mai? Non riesco a capire questo output. Perche Inizio appare tre volte? :quipy:

Rispondi quotando