Ciao a tutti,
qui di seguito il codice da me fatto per leggere un file di testo, composto da piu' righe (il numero delle righe non e' mai fisso) e da 11 colonne.
Con questo codice voglio leggere ciascuna riga del file, estrarne solo determinate colonne e stamparle a video.
Il mio problema e' questo. Nella riga indicata in rosso, ho indicato "cat argv[1]" ma quando eseguo la mia procedura, ricevo il messaggio d'errore mostrato nel titolo. Dove sto sbagliando?
Grazie a tutti
codice:
#include<stdlib.h>
#include<stdio.h>
main(int argc , char *argv[]){
FILE *filemch;
char buf[200];
char *res;
char comando[500];
char val1[200];
if(argc!=2)
{
printf("Syntax: procedura file_name.mch\n");
exit(1);
}
/* veifica che il file sia presente nel direttorio */
sprintf(comando,"test -f %s",argv[1]);
if(system(comando)!=0)
{
printf("The file %s does not exist\n",argv[1]);
exit(1);
}
/* apre il file */
filemch=popen("cat argv[1] | awk ' { print $2,$3,$4,$7,$9} '", "r")
if( filemch==NULL ) {
perror("Errore in apertura del file");
exit(1);
}
/* legge e stampa ogni riga */
while(1) {
res=fgets(buf, 200, filemch);
if( res==NULL )
break;
printf("%s", buf);
}
/* chiude il file */
fclose(filemch);
return 0;
}