android ndk에서 C 함수를 사용하여 큰 bmp 파일의 크기를 계산하려고합니다. 나는 다음과 같은 코드를 사용하고 있습니다 : - BMP 파일의 크기가 120 바이트보다 큰 제대로안드로이드에서 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;
}
그러나이 기능 나던 작동합니다. 파일이 어떻게 든 열리지 않고 파일 포인터 * imageFile이 NULL이됩니다.
아무도 왜 이런 일이 일어나고 있는지 그리고/또는 다른 방법이 있다고 말할 수 있습니까?
그리고 디스크의 동일한 위치에서 동일한 파일 이름을 사용하여 파일 자체를 대체하고 프로그램을 다시 실행하기 만하면 확인한 것입니까? FILE 버퍼를 할당 할 수 없더라도 메모리가 너무 빡빡하지 않으면이 코드에 아무런 차이가없는 지상적인 이유가 없습니다. 따라서 남은 논리 변수는 전달되는 이름 만 손상 될 수 있습니다. file-not-found 메시지,'printf ("File not found : % d, % s \ n", errno, imagePath);를 사용하여 파일 이름과 errno를 출력하고 유효한지 확인하십시오. – WhozCraig
올바른 imagePath가 파일 열기 함수에 인수로 전달됩니다. 나는 그것을 확인했다. – vikram
그래서'errno'의 보고서 값이 ...인지 확인하는 중입니까? – WhozCraig