PDA

View Full Version : [C]Problema file,dove sbaglio?


Mezzetti0903
23-06-2007, 13:54
Qualcuno può darmi una mano a capire perchè il la funzione ferror restituisce vero in questo sorgente?
Non capisco perchè se ometto di controllare il file è caricato correttamente quindi vorrei dire alla ferror che si sbaglia.....


FILE* fl;
int pgsz;
int charread;

charread = pgsz = getpagesize();
fl = fopen(path,"r");
if(!fl){
perror("Errore leggendo il file ");
fprintf(stderr,"Errore relativo al file %s",path);
return -1;
}

while (charread==pgsz){
*pos=realloc(*pos,*size+pgsz);
memerror(*pos,return -1;);
charread = fread(*pos+*size,1,pgsz,fl);
*size += charread;
}

*pos=realloc(*pos,*size+2);
memerror(*pos,return -1;);
*(*pos+*size)='\n';
*(*pos+*size+1)='\n';
*size+=2;

if(!ferror(fl)){
fprintf(stderr,"Errore leggendo il file %s",path);
return -1;
}

fclose(fl);

return 0;

cionci
23-06-2007, 15:56
Perché ferror torna un valore diverso da 0 se c'è un errore...quindi dovrebbe essere:

if(ferror(fl))

senza il not...

Mezzetti0903
23-06-2007, 18:14
ma lol.....ti giuro ci ho perso un ora....quel not era rimasto perchè prima c'era feof...ahahahahah

ti giuro non lo vedevo.....
ahahahah


grazie cionci.

cionci
24-06-2007, 09:07
Succede succede :D