Como você percebeu, você pode usar um parâmetro de tamanho de 1 byte e o número de itens como 0x200.
bytes = fread((void*)&Block, 1, 0x200, fp);
Em seguida, o fread retornará o número de itens (número de bytes) na verdade de leitura.
Normalmente, o fread seria colocado em um loop para ler todos os blocos. Como alternativa (dependendo de suas necessidades reais) fstat
ou stat
chamadas do sistema podem ser usadas para obter o tamanho do arquivo antes de lê-lo.
Na página fread
man, a contagem curta de objetos referenciada significa, por exemplo, se houver 0x201 bytes
no arquivo que está sendo lido, a primeira leitura retornará 0x200, a segunda leitura retornará 1.
RETURN VALUES
The functions fread() and fwrite() advance the file position indicator for the stream by the number of bytes read or written. They return the number of objects read or written. If an error occurs, or the end-of-file is reached, the return value is a short object count (or zero).