我有一個代碼,我正在訪問一個二進制文件幾次。每次我調用該函數時,它都會打開文件進行讀取,並只讀出所需的字節數(每次說明爲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