• 締切済み

マッピングとマップドファイル

ファイルデータの部分的な置換をする場合に、マッピングや マップドファイルを使用するとファイル全てをメモリに 読み込まずに処理できますか? 置換は位置指定の置換なのでデータを読む必要がないから ファイルを読まずに処理したいです。

みんなの回答

  • chirubou
  • ベストアンサー率37% (189/502)
回答No.2

「読み込まずに処理」というのが、見掛け上(プログラムで陽に read() しない、の意)であれば可能です。実際にはページ単位で最初の書き込みが発生した時点でファイルの内容がメモリに読み込まれます。また No.1 さんのご指摘のように、変更を確実にファイルに反映させるにはフラッシュ(あるいは synch 等、OS 依存)しなければなりません。 またアドレス空間(メモリ容量ではない)に余裕がないと、巨大なファイルのマップに失敗しますので注意してください。

  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.1

基本的にはファイルのブロックか仮想メモリのページ単位でアクセスする部分だけメモリ上に読み込んで処理しますね。 適当にフラッシュしてやらないと変更がなかなかファイルに反映されませんけど。

関連するQ&A