0

fopen() や fgetc()/fputc() などを使用するのではなく、配列と同じようにファイルにアクセスしたいと思います。

ファイルへのポインタを提供するメソッドを探しています。これを大きな文字列 (EOF で終了するか、指定された長さなど) として扱うことができます。メモリ内のファイル全体が必要で、特定のセクションにすばやくアクセスする必要があります。 .

これは可能ですか?もしそうなら、あなたは方法をお勧めできますか?また、これが c でファイルにアクセスするデフォルトの方法ではない理由にも興味があります。ファイルは通常、連続したメモリに保存されないためですか?

ご協力いただきありがとうございます。

4

1 に答える 1

3

メモリ マップト ファイルと呼ばれるものを探しています。たとえば、Unix を使用している場合は、mmap.

fd = open(...);    
p = mmap(NULL, buf.st_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);

/* Use `p` like a pointer to some memory and fstat to find size. */

CreateFileMappingWin32 を使用している場合は、とを探しますMapViewOfFile

于 2013-02-17T19:48:32.623 に答える