Telefonino.net network
 
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. NEI PREFERITI .:: | RSS Forum | RSS News | NEWS web | NEWS software |
| PUBBLICITA' | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | CERCA nel FORUM » |

Torna indietro   WinTricks Forum > Software > Programmazione

Notices

Rispondi
 
Strumenti discussione
Vecchio 22-05-2007, 21.56.47   #1
UG0_BOSS
Young Promise
 
Registrato: 04-02-2006
Messaggi: 2.114
UG0_BOSS promette bene
[C] funzione system() con stringa variabile

Ave forum

Abitualmente utilizzo la funzione system() per eseguire comandi esterni ai miei programmi, che però accetta come argomento solo una stringa di const char.

Adesso dato che lavoro su un file temporaneo di cui conosco il nome solo al momento dell'esecuzione mi tornerebbe utile una funzione simile che abbia come paramentro non un const char ma una stringa che possa essere variabile, in modo da poter dare il comando sul file su cui sto lavorando.

In caso non fossi stato chiaro mi spiego meglio:
Ho un file il cui nome è memorizzato nella variabile filename.
Dopo aver scritto in filename una serie di comandi, devo renderlo eseguibile (chmod a+x filename) e poi eseguire lo script (./filename).

C'è una funzione che mi permetta di eseguire il comando contenuto, per esempio, in una stringa variabile?

char comando[16]="chmod a+x TMP001";
funzione(comando);
UG0_BOSS non è collegato   Rispondi citando
Vecchio 22-05-2007, 22.47.56   #2
SkAkKo
Senior Member
 
L'avatar di SkAkKo
 
Registrato: 04-07-2004
Loc.: là sui monti con Annette...
Messaggi: 380
SkAkKo promette bene
puoi usare la funzione
execvp(char *file_name,char **argv)

filename è il nome del file e argv sono i paramentri da passare..
attenzione però..se la chiamata a execvp ha successo viene eseguito il comando e l esecuzione non torna all istruzione successiva ma finisce con il comando stesso ...

se devi fare altre cose puoi fare
Codice:
pid = fork();
if (pid ==0) execvp(...); /*processo figlio*/
else ( wait(&status)  /*processo padre prima di continuare aspetto che termini il processo figlio*/
puoi anche usare execlp(char* filename,char *arg[0],char *arg1[n],...,0)..cambia soltanto come passare i parametri..nel tuo caso

execlp("chmod","chmod","a+x",filename,0);
___________________________________

...sempre allegri bisogna stare il nostro piangere fa male al re...

Ultima modifica di SkAkKo : 22-05-2007 alle ore 23.07.28
SkAkKo non è collegato   Rispondi citando
Vecchio 23-05-2007, 18.48.00   #3
UG0_BOSS
Young Promise
 
Registrato: 04-02-2006
Messaggi: 2.114
UG0_BOSS promette bene
Quota:
Inviato da SkAkKo
puoi anche usare execlp(char* filename,char *arg[0],char *arg1[n],...,0)..cambia soltanto come passare i parametri..nel tuo caso

execlp("chmod","chmod","a+x",filename,0);
Perfetto... esattamente quello che cercavo. Grazie mille
UG0_BOSS non è collegato   Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is ON
Gli smilies sono ON
[IMG] è ON
Il codice HTML è OFF

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
System Protect leofelix Segnalazioni Web 0 22-03-2008 03.56.43
[winxp] problema di posta elettronica serpico Windows 7/Vista/XP/ 2003 13 19-12-2007 21.11.57
Aiuto su funzione stringa... Fast-M Programmazione 3 28-10-2004 20.50.23
HELP PER IMMAGINI VIRTUALI saveliev Masterizzazione Giochi Games 31 29-04-2004 20.23.48
Doppia funzione nella stringa Body Gabry Programmazione 1 29-11-2003 22.55.08

Orario GMT +2. Ora sono le: 23.48.48.


E' vietata la riproduzione, anche solo in parte, di contenuti e grafica.
Copyright © 1999-2017 Edizioni Master S.p.A. p.iva: 02105820787 • Tutti i diritti sono riservati
L'editore NON si assume nessuna responsabilità dei contenuti pubblicati sul forum in quanto redatti direttamente dagli utenti.
Questi ultimi sono responsabili dei contenuti da loro riportati nelle discussioni del forum
Powered by vBulletin - 2010 Copyright © Jelsoft Enterprises Limited.