У меня есть код, в котором я несколько раз обращаюсь к двоичному файлу. Каждый раз, когда я вызываю функцию, она открывает файл для чтения и считывает только необходимое количество байтов (скажем, n
байт каждый раз).
Двоичный файл содержит данные временных рядов, и я хотел бы, чтобы он мог выполнять вызов функции через цикл, и каждый раз, когда я вызываю функцию для открытия одного и того же файла, ему нужно считывать следующий фрагмент данных, т. е. я не хочу, чтобы указатель файла сбрасывался каждый раз. Есть ли способ сделать это?
Функция выглядит так:
int readBinary(float *binImage, int gelements) {
imageFile = fopen("tmpImageFile", "r");
if (imageFile == NULL) {
fprintf(stderr, "Error opening file\n");
return (1);
}
fread(binImage, sizeof(float), gelements, imageFile);
return 0;
}
И в моем основном коде я хотел бы запустить его через цикл, каждый раз давая ему массив binImage
размера gelements
. Я бы предпочел не давать ему массив размером gelements * nLoop
, если этого можно избежать.