¿Por qué ftell () muestra una posición incorrecta después de fread ()?
Recibo un error muy extraño al intentar leer un archivo de texto simple con la llamada c fread ().
Hice un programa muy simple para mostrar ese error:
int main(int argc ,char ** argv) {
FILE* fh = fopen("adult.txt","r");
if(fh==NULL){
printf("error opening file\n");
exit(0);
}
int s = 1000;
printf("cur before=%d\n",ftell(fh));
char* b = malloc (sizeof(char)*s);
int k =fread(b,sizeof(char),s,fh);
printf("cur after reading %d bytes =%d\n",k,ftell(fh));
return EXIT_SUCCESS;
}
Y lo que obtengo como salida:
cur before=0
cur after reading 1000 bytes =1007
¿Eso es normal? fread devuelve el número '1000' pero el cursor (con ftell ()) muestra 1007 y se apreciará cualquier ayuda.