C で大きなバイナリ ファイルを読み込もうとしています。次のコードを書きました。
FILE* f1 = fopen("filename.exe", "rb");
if(f1 != NULL)
{
fseek(f1,0,SEEK_END);
long l = ftell(f1);
fseek(f1,0,SEEK_SET);
char * buf = (char *)malloc(l* sizeof(char));
int k = fread(buf,sizeof(buf),1,f1);
if(k != l)
printf("the file was not read properly");
}
現在、 は にk
等しくないだけでなくl
、はるかに小さくなっています (は 13 しかないl
のに対し、 は ~99,000,000k
です)。
fread
ファイルでNULLに達したために停止している可能性はありますか? それを避けるために私は何ができますか?