2

ファイルの内容を単一の文字配列に取得する最良の方法は何ですか?

私はこの質問を読みました:

Cでファイルの内容を取得する最も簡単な方法

しかし、コメントから、このソリューションは大きなファイルには適していないことがわかりました。stat 関数にアクセスできます。ファイル サイズが 4 GB を超える場合、エラーを返すだけでよいですか?

ファイルの内容は暗号化されており、ユーザーによって提供されるため、誰もが望むほど大きくなる可能性があります。ファイルが大きすぎる場合にエラーを返してクラッシュしないようにしたい。文字配列にファイルの内容を入力する主な目的は、それを別の文字配列と比較し、(必要に応じてそのように構成されている場合) これらの両方をログ ファイル (または必要に応じて複数のログ ファイル) に記録することです。 )。

4

2 に答える 2

1

私があなたの質問を正しく理解していれば、その男のコードから:

    char * buffer = 0;
    long length;
    FILE * f = fopen (filename, "rb");

    if (f)
    {
    fseek (f, 0, SEEK_END);
    length = ftell (f);
    if(length > MY_MAX_SIZE) {
          return -1;
    }

     fseek (f, 0, SEEK_SET);
     buffer = malloc (length);
    if (buffer)
    {
    fread (buffer, 1, length, f);
    }
    fclose (f);
    }

    if (buffer)
    {
      // start to process your data / extract strings here...
    }
于 2013-01-03T19:56:40.257 に答える