Why does ftell() shows wrong position after fread()?
c, file, fread
Solution
That's normal.
`'\n'` can be represented with two characters, so there is the skew you are getting.
If you don't want that to happen, open the finaly in binary mode.
Problem
I'm getting a very strange error while trying to read from a simple text file with c fread() call. I made a very simple program to show that 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; } ``` And what I get as output: ``` cur before=0 cur after reading 1000 bytes =1007 ``` Is that normal? fread return the number '1000' but the cursor (with ftell()) shows 1007 and any help will be appreciated.