Rsk
27-01-2010, 13:22
Ragazzi dovrei realizzare un ciclo che mi crea vari processi, ai quali in seguito attribuirò un lavoro da compiere ma ho un problema..
Realizzando il tutto con un ciclo me ne crea molti e l'array che dovrebbe contenere i pid viene sovrascritto dai vari processi, questo perchè probabilmente il for viene rieseguito da ogni processo che creo.
questo è il codice.
for(i=0;i<NUM_PROCESSI;i++)
{
switch(lista[i]=fork())
{
case -1:
perror("Errore nell'esecuzione della fork.");
exit(1);
case 0:
lista[i]=getpid();
//printf(" lista [%d] = %d",i,lista[i]);
break;
}
}
for(i=0;i<NUM_PROCESSI;i++) printf(" lista [%d] = %d",i,lista[i]);
Sapete aiutarmi?
Realizzando il tutto con un ciclo me ne crea molti e l'array che dovrebbe contenere i pid viene sovrascritto dai vari processi, questo perchè probabilmente il for viene rieseguito da ogni processo che creo.
questo è il codice.
for(i=0;i<NUM_PROCESSI;i++)
{
switch(lista[i]=fork())
{
case -1:
perror("Errore nell'esecuzione della fork.");
exit(1);
case 0:
lista[i]=getpid();
//printf(" lista [%d] = %d",i,lista[i]);
break;
}
}
for(i=0;i<NUM_PROCESSI;i++) printf(" lista [%d] = %d",i,lista[i]);
Sapete aiutarmi?