Jochen Arndt
Вы используете fseek()
внутри цикла так, чтобы положение файла всегда устанавливалось в одно и то же положение перед чтением. Это приводит к чтению одних и тех же данных 5 раз.
Вы также должны обновить позицию поиска:
for(i = 0; i < 5; i++)
{
fseek(fp, u32FilePointer, SEEK_SET);
u16BytesRead = fread(u8Buffer, 1, 7, fp);
// The read updates the internal position of the file pointer
// If we want to track the position we have to do it also for our variable
u32FilePointer += u16BytesRead;
// Or use ftell() to get the internal position
//u32FilePointer = ftell(fp);
printf("u32FilePointer : %lu\n" ,u32FilePointer);
}
Когда чтение всегда должно продолжаться после последнего считывания данных, вы также можете переместить
seek()
из петли:
fseek(fp, u32FilePointer, SEEK_SET);
for(i = 0; i < 5; i++)
{
u16BytesRead = fread(u8Buffer, 1, 7, fp);
printf("u32FilePointer : %lu\n", ftell(fp));
}