Ho fatto così:
ma non capisco perchè il pid dei 10 figli è sempre uguale (come se fosse sempre lo stesso figlio...).Codice PHP:#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
void main(void)
{
int i;
pid_t pid[10];
for(i = 0; i < 10; i++)
{
//genero un nuovo processo figlio
pid[i] = fork();
//se fork restituisce -1 c'è stato un errore ed esco
if(pid[i] == -1)
exit();
//se pid == 0 sono il filgio, quindi esco dal for
if(pid[i] == 0)
break;
}
//se sono un processo figlio mi fermo per 10 secondi
if(pid[i] == 0)
{
sleep(1);
printf("Sono il processo numero %d con pid %d\n",i+1,getpid);
}
//Se sono il padre...
else
{
// aspetto la terminazione di tutti i figli
for(i = 0; i < 10; i++)
waitpid(pid[i],NULL,0);
// stampo la classifica...
printf("Sono il processo padre\n");
}
}

Rispondi quotando