PDA

Visualizza la versione completa : [C] lanciare un eseguibile


zaknafein
04-12-2003, 21:30
Ringrazio anticipatamente chi sia in grado di rispondermi.
C'è un modo per lanciare da un programma C un altro programma eseguibile? Ad esempio in un menu... ad una certa scelta mi lancia il file pincopallo.exe?

maiosyet
04-12-2003, 21:49
Mi associo con un altra domanda, visto che è inutile aprire un nuovo 3d :quipy:

Più in generale, è possibile prendere in variabile un file presente sul OS che esegue il programma?

Ad es io ho nel mio computer un file chiamato CIAO.txt in
/home/maiosyet
Lancio il mio programmino da shell ed esso mi prende il mio CIAO.txt e magari me lo stampa ecc?

Suppongo ce se è possibile fare questo si possa rispondere quindi anche alla domanda di zaknafein... :)

Thanx :ciauz:

Johnny_Depp
04-12-2003, 21:54
includi <stdlib.h>

poi...

system("C:\\percorso\\mio_eseguibile.exe");

n.b. attenzione ai doppi backslash.

n.b. con system() si possono chiamare tutti i comandi della shell.

maiosyet
04-12-2003, 22:29
Originariamente inviato da Johnny_Depp
includi <stdlib.h>

poi...

system("C:\\percorso\\mio_eseguibile.exe");

n.b. attenzione ai doppi backslash.

n.b. con system() si possono chiamare tutti i comandi della shell.

Grazie ho fatto un po' di prove e devo dire che la cosa mi ha un po' turbato... :eek:

Ho creato dei banalissimi listati che creavano e cancellavano a mio piacere cartelle, si potrebbero formattare dischi fissi, prelevare gli hash delle pwd da un sistema...

Ho provati a passarli all'antivirus e non me li riconosce infetti ovviamente...chiunque potrebbe mandrami un simile file per email e magari installarmi un trojan nel pc...

Non è un tantino pericoloso? :stordita:

maiosyet
04-12-2003, 22:38
Oppure mi vedo già il lamerazzo che mi manda un allegato, io lo scansiono con l'antivisus e non trovo nulla si sospetto, e quello poi magari in 2 righe di codice, ad es facendo wget prelevando un visrus, salvandolo sul diso fisso e aprendolo magari siccome l'eseguibile di fatto l'ho aperto io l'antivirus non se ne accorge in tempo e addio pc...

Come prevenire certe sgradevoli situazioni? :master:

zaknafein
04-12-2003, 23:34
Grazie della delucidazione :)
I miei intenti non sono di questo tipo, mi serviva generare più eseguibili perchè ho scritto un programma per computer vecchi, e aprire un singolo file enorme è più dispendioso che aprirne tanti al momento opportuno, non trovate? :quote:

Per la pericolosità mi associo, ma credo che il sistema operativo blocchi chiamate a formattazioni o eliminazione di cartelle davvero importanti quali quelle di sistema... in ambito C++ con un Try dovrebbe fallire...
Per il resto è vero, puoi eliminare file e distruggere cartelle... ma lo potevi già fare con le funzioni standard del C o scritte di persona... ricordo che Windows l'hanno scritto in C / C++ :gren:

}gu|do[z]{®©
05-12-2003, 01:43
curiosità.. ho rogrammato qualcosa sotto linux per l'uni e si usa exec.... è una primitiva linux o funge anche su winzozzo?

Johnny_Depp
05-12-2003, 06:22
Originariamente inviato da }gu|do[z]{®©
curiosità.. ho rogrammato qualcosa sotto linux per l'uni e si usa exec.... è una primitiva linux o funge anche su winzozzo?
è una funzione (o meglio famiglia di funzioni) specifica per ambienti Unix...
http://www.mkssoftware.com/docs/man3/execl.3.asp

Tuttavia system() (visto che appartiene allo standard ansi per il c) può essere utilizzata anche in ambienti Linux

}gu|do[z]{®©
05-12-2003, 13:21
compris.. denghiù ;)

Loading