PDA

Visualizza la versione completa : system() in c


jhon.denver
24-06-2010, 23:36
Ciao a tutti,

dovrei scrivere un programmino in C che mi permetta di eseguire dei cicli for all'interno dei quali devo comandare un secondo programma (Feko) attraverso il suo file batch;
pensavo di usare la system ma provando ho scoperto che non funziona e non capisco perchè, io sapevo che quello che veniva digitato nella system veniva riversato esattamente nel prompt ma evidentemente non è così. Cosa potrei fare? :bhò:

Help please

oregon
24-06-2010, 23:39
Lasciamo perdere cosa pensavi ... facci vedere cosa dovresti fare, cosa fai, cosa non funziona con il codice che hai scritto ...

P.S. Cosa è questo Feko?

jhon.denver
24-06-2010, 23:48
Ciao, grazie di aver risposto

Feko è un programma di simulazione elettromagnetica, e dato che devo fare una serie di misure modificando i parametri non volevo inviare ogni volta una simulzione e dato che, questo software permette la modifica e l'eseguzione via linea di comando tramite file batch speravo di poter usare la system per eseguire, come se fossi nel prompt, i comandi

cd C:\Programmi\Feko\5.5\bin\initfeko.bat -console -> invio

e poi i comandi di Feko per modificare i file, cioè sempre come se fossi nel prompt

cadfeko_batch nome_mio_file -#variabile1=valore ->invio

per il software io ho provato semplicemente a scrivere:

#include<stdio.h>
#include<stdlib.h>
#include<stddef.h>
#include<process.h>

int main(){
int error;
error=system("cd C:\\Programmi\\Feko\\5.5\\bin\\initfeko.bat -console");
fprintf(stdout,"error: %d\n",error);
system("pause");
return 1;
}

però non va, magari devo usare una funzione diversa? cosa potrei fare?

MacApp
25-06-2010, 03:37
Originariamente inviato da jhon.denver

error=system("cd C:\\Programmi\\Feko\\5.5\\bin\\initfeko.bat -console");

prova ad eseguire il seguente in uinDOS (ok nel terminal):


C:> cd C:\Programmi\Feko\5.5\bin\initfeko.bat -console

jhon.denver
25-06-2010, 10:03
Ti ringrazio ma non volevo essere io ad eseguire il comando dal dos, volevo farlo fare ad un programmino C, comunque penso di aver risolto da solo.

grazie, saluti

MacApp
25-06-2010, 10:13
Originariamente inviato da jhon.denver
Ti ringrazio ma non volevo essere io ad eseguire il comando dal dos, volevo farlo fare ad un programmino C, comunque penso di aver risolto da solo.

grazie, saluti

era per farti capire che NON potendo funzionare quel comando da DOS, ovviamente NON poteva funzionare neppure con la system...
;-)

come hai risolto?

Loading