バイナリ ファイルに数回アクセスしているコードがあります。関数を呼び出すたびに、読み取り用にファイルが開かれ、必要なバイト数 (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