|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Dec 2004
Città: Napoli
Messaggi: 342
|
Problemi con le funzioni exec
Salve realizzando un piccolo e facile programmino in C su Linux, ho trovato dei problemi
con le funzioni della classe exec, il programma passato come parametro si avvia ma i parametri supplementari non influenzano il programma esempio: Codice:
int main(int argc, char *argv[]){ execlp("cp",argv[1],argv[2],(char *) 0); Codice:
int main(int argc, char *argv[]){ execlp("ls",-all,(char *) 0); Potete aiutarmi?
__________________
Il futuro lo conoscerete quando sarà arrivato, prima di allora dimenticatelo. (Eschilo) |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Jun 2004
Città: Pecetto
Messaggi: 73
|
se non sbaglio execlp e simili sono
execlp(char*cmd,char *argv[0],char ]argv[1],....) dove cmd è il file o comando da eseguire argv[0] è la ripetizione dello stesso e finalmente argv[1].... sono i parametri
__________________
Gianni |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Jun 2004
Città: Pecetto
Messaggi: 73
|
Leggendo + attentamente il tuo messaggio:
int main(int argc, char *argv[]){ execlp("ls","-all",(char *) 0); anche i parametri sono char * quindi vogliono gli ""
__________________
Gianni |
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Feb 2005
Città: Prato
Messaggi: 149
|
Ciao,
Oltre alle considerazioni di GioVesas (le stringhe fino a prova contraria si passano tra virgolette): argv[0] è proprio argv[0]... in pratica come primo e secondo parametro devi passare sempre e comunque il nome dell'eseguibile... nel tuo caso: execlp("ls","ls","-all",(char *) 0); Ciaociao ![]()
__________________
Venite a visitarci qui:http://www.bottomap.com Bottomap is a proud Masterdrive.it moderator |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Dec 2004
Città: Napoli
Messaggi: 342
|
Quote:
![]()
__________________
Il futuro lo conoscerete quando sarà arrivato, prima di allora dimenticatelo. (Eschilo) |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:08.