PDA

View Full Version : [C/C++] Avviare eseguibile passandogli un parametro


bluevil
10-04-2005, 18:25
Salve a tutti ragazzi,

da qualche giorno sono alle prese con un problema cui non riesco a dare una soluzione.
Ho implementato in C un algoritmo per la creazione e l'addestramento di una rete neurale e vorrei che ogni 1000 epoche (1000 iterazioni di questo algoritmo) il programma avvii un plotter esterno che mi rappresenti l'errore quadratico medio che la rete sta compiendo. Ho così pensato che sarebbe cosa buona e giusta salvare periodicamente in un file il numero di iterazione e l'errore. Ora il problema è: come faccio ad avviare l'eseguibile (gnuplot, per esempio) e passargli come parametro il comando (plot "dati.txt" using 1:2, per esemio)?
Sto sviluppando questo programma sia in Linux (Fedora Core 3, kernel 2.6.10 + IDE Anjuta) che in Windows XP (Visual C++ 6.0)...presumo che esistano delle API apposite in entrambi questi sistemi per effettuare un'operazione simile :)
Ringrazio in anticipo chiunque vorrà darmi una mano :)

Blackat
10-04-2005, 21:46
Per quanto riguarda linux puoi utilizzare la famiglia delle funzione execX. Guarda qui http://www.gnu.org/software/libc/manual/html_node/Executing-a-File.html#Executing-a-File

cionci
11-04-2005, 01:42
Attento che con la exec su Linux dovresti utilizzare prima una fork... Cosa che ti potrebbe portare incompatibilità di codice fra la versione Windows e la versione Linux...

Per avviare il programma che vui usare potresti fare una cosa del genere:

system("eseguibile < filecomandi.txt");

filecomandi.txt conterrà tutti i comandi che vuoi inviare al programma (compreso quello di chiusura)...

Credo che questo sia il metodo più semplice...