Читаю файл по частям, из за ограниченного объема памяти. При этом, чтение происходит где то с середины и может считываться от 0 до дохренища байт. Вот код:
#define BUFF_SIZE 512
uint16_t code_size, code_read = 0;
fread(&code_size, sizeof(uint16_t), 1, f);
while (code_read < code_size) {
uint8_t buf[BUFF_SIZE];
uint16_t tmp = fread(buf, 1, code_size % BUFF_SIZE, f);
fwrite(buf, tmp, 1, f_sec_code);
code_read += tmp;
}
code_off += code_size;