我有一个代码,我正在访问一个二进制文件几次。每次我调用该函数时,它都会打开文件进行读取,并只读出所需的字节数(每次说明为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;
}
而且在我主要的代码,我想通过一个循环来运行它,给它每一次大小gelements
的阵列binImage
。如果这是可以避免的,我宁愿不给它一个大小为gelements * nLoop
的数组。
为什么你不断重新打开文件?只需打开一次并继续使用它。 – Barmar 2013-04-20 18:26:21