¿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.

Respuestas a la pregunta(3)

Su respuesta a la pregunta