2012-02-11 5 views
2

大きなファイルの一部にランダムにアクセスしたい。私がファイルの別の部分が必要な場合、mmapで必要な部分を開いた後。最初のメモリマップ領域とmmapをもう一度閉じるか、または同時に2つのメモリマップ領域を開くことができますか?ファイルに対してmmapを2回呼び出す

RAMよりも大きい可能性があるため、すべてのファイルをマップしたくないので、自分のプログラムで複数のファイルを同時に開くことにします。

答えて

5

MmappingはRAMを消費しません。使用可能なアドレススペースより大きい場合を除き、ファイル全体をマップできます。 64ビットコンピュータでは、そうは考えにくいです。 32ビットでは不可能ではありません。

いずれの場合でも、1つのファイルごとに必要な数のマッピングを作成できます。

+0

20-30個のファイルを開くことができます。 32ビットシステムで同時に2つの4GBファイルを開くと、アドレス空間が不足しますか? – Berk

+0

32ビットシステムでは、4GBファイルを1つでもマップすることはできません。だから私の2番目のパラグラフごとに、断片の多くの小さなマッピングを作ってください。 – bmargulies

関連する問題