Ciao!
Ho capito che il programma entra prima nel figlio che creo e poi mi fa le stampe TEMPO,COMANDO,PARAMETRI, forse per questo che non mi esegue niente, perchè entrando nel figlio per prima cosa, su agrv[0],non c'è niente, ma ci sarà solo nel figlio ci entra con lo stesso ordine con cui è scritto il progr.

Infatti ho provato a mettere delle stampe di prova dentro il figlio e così ho capito che prima esegue queste istruzioni:
codice:
IFERROR(pid=fork(),"generando il figlio"); 
if(pid==0){ 
/*siamo nel figlio*/ 

IFERROR(execvp(argv[0],argv),"ERRO NELLA EXEC"); 
/*non esegue niente perchè in argv[0] non c'è nessun comando*/ 
printf("non ho potuto eseguire %s\n", argv[0]); 
}
e poi sale su e mi stampa le seguenti istruzioni:
codice:
/**Leggo riga per riga con fgets()**/ 
s=dim; 
while((fgets(s,80,fp))){ 
argv=split_arg(s," ",&argc); 
i = 1; 
temp = ritornaTempo(argv,argc); 
printf("Tempo: %d\n", temp); 
printf("Comando: %s\n", argv[0]); 
argc--; 
argv[argc]=NULL; 
while(i!=argc){ 
printf("parametri: %s\n", argv[i]); 
i++; 
}
invece l'ordine del codice è inverso, perchè prima deve entrare nel while del'fgets() e poi creare il figlio....
cosa devo fare????aiutatemi....