1

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に達したために停止している可能性はありますか? それを避けるために私は何ができますか?

4

1 に答える 1