|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Nov 2000
Città: Milano
Messaggi: 210
|
[C] Aiuto, non riesco a capire l'errore ?!?!
Allora io devo leggere un file di testo nel quale ci sono righe così
formate: "30 comando parametri", e devo far eseguire i vari comandi quando il tempo di quella riga scade, per esempio se ho una riga : 30 ls -a, vuol dire che dopo 30 sec dall'avvio del programma devo eseguire ls -a. Il codice che allego mi stampa tutto perfettamente, ma quando deve eseguire il comando non lo fa, cioè da quello che ho capito in argv[0] non c'è nessun comando che può eseguire.Ma la cosa strana è che nello schermo, il pritnf di argv[0] mi dà esattamente il comando che deve leggere.che succede?? Per favore aiutatemi, dov'è l'errore?? come faccio?? ecco il 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]); //qui mi stampa esattamente il comando argc--; argv[argc]=NULL; while(i!=argc){ printf("parametri: %s\n", argv[i]); i++; } } 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]); } IFERROR(letti, "main: Errore in lettura"); IFERROR( close(fd), "main: Errore in chiusura"); return 0; } int ritornaTempo(char **argv,int argc){ int i = 1; int temp = atoi(argv[0]); while((i-1)!=argc){ argv[i-1] = argv[i]; i++; } return temp; } grazie!! |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:18.