Предполагая, что:
FILE* file = fopen(FILENAME, "rb");
char buf[8];
Вы можете прочитать первые 8 байтов, а затем следующие 8 байтов:
/* Read first 8 bytes */
fread(buf, 1, 8, file);
/* Read next 8 bytes */
fread(buf, 1, 8, file);
Или пропустите первые 8 байтов с помощью fseek
и прочитайте следующие 8 байтов (8 .. 15 включительно, если считать первый байт в файле как 0):
/* Skip first 8 bytes */
fseek(file, 8, SEEK_SET);
/* Read next 8 bytes */
fread(buf, 1, 8, file);
Ключ к пониманию этого заключается в том, что функции библиотеки C автоматически сохраняют в файле текущую позицию в файле. fread
перемещает его, когда выполняет операцию чтения, поэтому следующий fread
начнется сразу после завершения предыдущего. fseek
просто перемещает его без чтения.
P.S .: Мой код здесь читает байт , как ваш вопрос задан. (Размер 1 предоставляется в качестве второго аргумента для fread
)