Функция fread
определяется следующим образом :
size_t fread (void * ptr, size_t size, size_t count, FILE * stream);
, где аргумент size
указывает размер (в байтах) каждого элемента для чтения и count
указывает (максимальное) количество таких элементов для чтения. Возвращаемым значением является число элементов, успешно прочитанных . Итак, в вашем первом случае:
nByteRead = fread(&vol_buffer, SLICE_SIZE, 4, volFile);
размер элементов задан как 759000
, и вы просите прочитать (до) 4
таких объектов. Вызов завершается успешно, и функция возвращает 4
. Во втором случае:
nByteRead = fread(&vol_buffer, 4, SLICE_SIZE, volFile);
вы просите прочитать 759000
элементов, каждый из которых имеет размер 4
байт. Опять же, вызов завершается успешно и возвращает количество прочитанных элементов.
В обоих случаях число байтов прочитанное одинаково (4 x 759000
) - но это не что возвращает функция fread
.