2011年9月24日土曜日

メモリマップドファイルを利用したデータの読み込み、編集、書き出し

メモリマップドファイルを利用し、ファイルからのデータの読み込み、編集、書き出しを行う例です。

メモリにファイルの内容をマッピングする際には、仮想メモリのページサイズ毎にマップされるので、出力されるファイルのサイズもページサイズの整数倍に合わせています(今回の例では、ページサイズは 4kByte)。

以下の例では、

MapFile が存在しない場合に実行: ページサイズの整数倍に合わせたサイズでファイルを作成しデータの出力
MapFile が存在する場合に実行: MapFile の内容を読み込んで編集しデータの出力
という形で MapFile の出力内容が変更されます。

出力されるデータは、"abcd .. xyz" のテキストを実行する度に "zyx ... cba" というように並びを反転させて出力しています。

実行結果

0 件のコメント:

コメントを投稿