Android ndk で C 関数を使用して大きな bmp ファイルのサイズを計算しようとしています。私は次のコードを使用しています:-
int getSizeOfCapturedImage(char * imagePath) {
FILE *imageFile = fopen(imagePath, "rb");
long sizeOfImageFile = 0;
if (imageFile == NULL) {
printf("file not found!\n"); //handle error
return 1;
} else {
fseek(imageFile, 0, SEEK_END);
sizeOfImageFile = ftell(imageFile);
printf("size of ImageFile is %1dB\n", sizeOfImageFile);
fclose(imageFile);
}
return sizeOfImageFile;
}
ただし、bmp ファイルのサイズが 120 バイトを超える場合、この機能は正しく動作しません。どういうわけかファイルが開かず、ファイル ポインタ *imageFile が NULL になります。
なぜこれが起こっているのか、および/または別の方法があるのか 誰か教えてもらえますか?