J'ai donc un programme très simple qui lit les 3 premiers octets d'un fichier:erreur ftell après le premier appel à fread
int main(void) { FILE *fd = NULL; int i; unsigned char test = 0; fd = fopen("test.bmp", "r"); printf("position: %ld\n", ftell(fd)); for (i=0; i<3; i++) { fread(&test, sizeof (unsigned char), 1, fd); printf("position: %ld char:%X\n", ftell(fd), test); } return (0); }
Lorsque je tente avec un fichier texte, il fonctionne très bien:
position: 0 position: 1 char: 61 position: 2 char: 62 position: 3 char: 63
mais quand je le lance avec un PNG par exemple je reçois:
position: 0 position: 147 char:89 position: 148 char:50 position: 149 char:4E
Notez que les 3 premiers octets du fichier sont en effet 89 50 4E mais je Je ne sais pas d'où vient le 147. Avec un fichier bmp je reçois:
position: 0 position: -1 char:42 position: 0 char:4D position: 1 char:76
Savez-vous où ces premières positions viennent? Merci beaucoup pour votre aide
Merci pour votre réponse rapide! – bAp