PDA

Visualizza la versione completa : [C] Input di un programma prelevato da file


magicofred
26-06-2007, 02:29
Ciao a tutti, volevo sapere se esiste un modo per eseguire un programma tramite c e mandargli in input un file di testo, in pratica devo poter fare il seguente comando, da bash a c . come piattaforma uso linux, compilatore gcc.

comando : grep parola < file.txt

grazie infinite :)

zucchino
26-06-2007, 09:34
Ciao, non ho capito la domanda.
Cosa vuol dire "eseguire un programma tramite c"?
Cova vuol dire " da bash a c"?

Vuoi scriverti il grep in linguaggio C?

se ci delucidi possiamo aiutarti

magicofred
26-06-2007, 14:05
devo eseguire una fork + exec, dove il programma lanciato con la exec prende il suo input da file...

magicofred
26-06-2007, 20:52
aiutatemi per favore...

zucchino
27-06-2007, 18:46
cosa non riesci a fare?
cosa hai giÓ scritto?

magicofred
28-06-2007, 09:06
per ora ho fatto la duplicazione di un processo con la fork + exec.. devo fare in modo che il programma che lancio con exec prenda in input il testo di un file...

donato.sciarra
28-06-2007, 10:30
apri il file con fopen ti porti dove leggere con una fseek (o con altri metodi) prelevi immagazzinando in un vettore e passi i parametri alla exec. . .

. . .


pid_t pid;
FILE *fpt;
fpt=fopen("tuo_file","r");
fseek(fpt,offset,SEEK_SET);//mi sposto di offset a partire dall'inizio del file
for(i=0;i<quanti_ne_devo_leggere;i++) vett[i]=fgetc(fpt);//il vettore non l'ho inizializzato xk puoi gestirlo anche dinamicamente !
fclose(fpt);
pid=fork();
if(!pid) execlp ("path_name_file","name_file","vett",NULL);//figlio
else{
. . . .//padre
}


do per scontato che tu sappia da dove e per quanto leggere dal file, se cosi non fosse facci sapere . . .

Loading