stella_650
20-06-2008, 09:45
ciao a tutti, ho bisogno di capire come fare per risolvere un problema.
Devo svolgere un esercizio e mi sono bloccata nella prima parte...precisamente un padre crea N processi figli con N pari e ciascun processo figlio č identificato da una variabile intera (i=0...N-1); poi continua...ma sn ferma qui.
Ho scritto questa prima parte di codice ma non mi funziona...in output ottengo + pid[i] del dovuto e non so per quale motivo.
Qualcuno potrebbe dirmi come posso risolvere questo problema e perchč cosė nn va?
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <signal.h>
#include <stdlib.h>
int N;
int main(int argc, char *argv[])
{
pid_t pid[N];
int i;
if(argc!=2)
{
printf("Errore nell'utilizzo del programma!\n");
printf("./es1_1411 <N>\n");
exit(-1);
}
N=atoi(argv[1]);
if((N%2)==0)
printf("Il numero (N) inserito č pari: %d\n",N);
else
{
printf("Il numero (N) inserito č dispari: %d\n",N);
printf("Cio' comporta l'uscita dal programma...\n");
exit(-2);
}
i=0; //Parte critica!
while(i<N)
{
pid[i]=fork();
if(pid[i]==0)
{
printf("pid[%d]: %d\n",i,getpid());
}
i++;
}
return 0;
}
Devo svolgere un esercizio e mi sono bloccata nella prima parte...precisamente un padre crea N processi figli con N pari e ciascun processo figlio č identificato da una variabile intera (i=0...N-1); poi continua...ma sn ferma qui.
Ho scritto questa prima parte di codice ma non mi funziona...in output ottengo + pid[i] del dovuto e non so per quale motivo.
Qualcuno potrebbe dirmi come posso risolvere questo problema e perchč cosė nn va?
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <signal.h>
#include <stdlib.h>
int N;
int main(int argc, char *argv[])
{
pid_t pid[N];
int i;
if(argc!=2)
{
printf("Errore nell'utilizzo del programma!\n");
printf("./es1_1411 <N>\n");
exit(-1);
}
N=atoi(argv[1]);
if((N%2)==0)
printf("Il numero (N) inserito č pari: %d\n",N);
else
{
printf("Il numero (N) inserito č dispari: %d\n",N);
printf("Cio' comporta l'uscita dal programma...\n");
exit(-2);
}
i=0; //Parte critica!
while(i<N)
{
pid[i]=fork();
if(pid[i]==0)
{
printf("pid[%d]: %d\n",i,getpid());
}
i++;
}
return 0;
}