Несколько ошибок в вашем коде.
Прежде всего индекс массива начинается с 0
. fname
- это массив 2
char *
, и вы пропустили инициализацию fname[0]
. Более того, вы инициализируете массив после конца массива - fname[2]
и fname[3]
. Так как ваша программа должна читать три файла, вы должны сделать:
const char *fname[3];
fname[0] = "C:\\1_data.bin";
fname[1] = "C:\\2_data.bin";
fname[2] = "C:\\3_data.bin";
Измените условие цикла на i < 3
.
В read_back()
вы устанавливаете lSize
на 100
и ниже в коде, который вы делаете
if (result != lSize) { fputs("Reading error", stderr); exit(3); }
Это означает, что файл для чтения должен иметь количество байтов, считанных fread()
, либо 100
или более, иначе это Reading error
. Кроме того, если файл имеет более 100
байтов, то, кроме первых 100
байтов, он будет непрочитанным. Можете ли вы вызвать fread()
в цикле и прочитать до конца файла.