Si je cours:C++ fread changement fgetpos étrangement
FILE* pFile = fopen("c:\\08.bin", "r");
fpos_t pos;
char buf[5000];
int ret = fread(&buf, 1, 9, pFile);
fgetpos(pFile, &pos);
je reçois ret = 9 et pos = 9.
Cependant, si je cours
FILE* pFile = fopen("c:\\08.bin", "r");
fpos_t pos;
char buf[5000];
int ret = fread(&buf, 1, 10, pFile);
fgetpos(pFile, &pos);
ret = 10 comme prévu, mais pos = 11!
Comment cela peut-il être?
Comme indiqué dans la norme C: "Les valeurs stockées [par fgetpos()] contiennent des informations non spécifiées utilisables par la fonction fsetpos pour repositionnant le flux à sa position au moment de l'appel à la fonction fgetpos." –
Aussi bien un exemple de standard que j'ai jamais lu! –