Ciao a tutti, ho scritto il seguente frammento di programma che tra le varie cose deve leggere i primi 10 caratteri del file testo.txt, ma quando effettua la chiamata a fgets restituisce un puntatore a null segno che non viene letto alcun carattere, avete qualche suggerimento su quale sia il problema ? Vi posto il codice, Grazie
codice:#include <unistd.h> #include <stdio.h> #include <dirent.h> #include <sys/types.h> #include <stdlib.h> int main(int argc, char *argv[]) { char *ptr; char *prova; DIR *dp; struct dirent *dirp; struct dirent1 *dirp1; int size; char directory[526]; char *stringa; char *nomefile=(char *)malloc(1000*sizeof(char));; char nomefile1[526]="/testo.txt"; while(strcmp(directory,"/")!=0){ getcwd(directory, sizeof(directory)); printf("%s\n", directory); ptr = chdir(".."); if ( (dp = opendir(directory)) == NULL){ printf("can't open %s", argv[1]); exit(-1); } while ( (dirp = readdir(dp)) != NULL){ if(strcmp(dirp->d_name,"testo.txt")==0){ printf("File trovato\n"); printf("File %s\n", dirp->d_name); nomefile=strcat(directory,nomefile1); FILE *prova; prova=fopen(nomefile,"r"); if (prova==NULL){ printf("non posso aprire il file"); exit(1); } stringa=(char *)malloc(100*sizeof(char)); char *st = (char *)malloc(100*sizeof(char)); st=fgets(stringa,10,prova); printf("%s\n",stringa); exit(0); } } } printf("File non trovato\n"); }

Rispondi quotando