J'ai un fichier. J'ai lu la taille du fichier. Ensuite, je boucle la lecture de deux octets à la fois jusqu'à ce que j'arrive à la fin du fichier. Après chaque opération de lecture, j'augmente la position actuelle de 2, mais la position ne s'incrémente pas après avoir atteint la moitié de la taille du fichier, l'opération fread lit 0 octet.C-programmation ftell fseek fread, lire la taille d'un fichier
le programme lit la taille du fichier. J'effectue fread (2 bytes à chaque fois) jusqu'à ce que la position actuelle soit égale à la taille du fichier. Il lit 22915 byes pour la taille de fichier Il incrémente la position de 2 après chaque lecture, mais lorsque la position actuelle atteint 11459, soit la moitié de la taille du fichier, il lit zéro octet et passe ainsi dans une boucle infinie.
FILE *file;
char *file_name;
int readCount = 0;
int position = 0;
int fileSize;
unsigned short mem_accesses;
file_name = "sample.txt";
/** open the file */
file = fopen(file_name, "rb");
fseek(file, 0, SEEK_END);
fileSize = ftell(file);
rewind(file);
while(position<fileSize){
mem_accesses = getNumberAccesses();
printf("position: %d filesize: %d\n",position, fileSize);
}
unsigned short getNumberAccesses(){
/** calculate number of accesses for process */
unsigned short val;
readCount = fread(&val, sizeof(val), 2, file);
position += readCount;
printf("read count: %d\n", readCount);
return val;
}
Je ne vois aucune question ici. Quelle est ta question? – abelenky