• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MapViewOfFileについて教えて下さい)

ファイルマッピングとMapViewOfFileについて

このQ&Aのポイント
  • C言語初心者の質問:ファイルマッピングとMapViewOfFileについて教えてください
  • 初心者向けの質問:ファイルマッピングを使用した共有メモリについて詳しく教えてください
  • Windows2000とVC6.0を使用している初心者ですが、ファイルマッピングについて教えてください

質問者が選んだベストアンサー

  • ベストアンサー
noname#30727
noname#30727
回答No.1

>直接Aを変更すれば良いのですが、ファイル内容が膨大なため 膨大というのはどの程度ですか? 数MBくらいなら、Bファイルを読み込んでおいて、memcpy等でコピーするだけですよね。

pota_1119
質問者

補足

回答ありがとうございます。 ファイルのサイズは、約14MBです。膨大というのは大げさでした。すみません。 ファイルを読み込んで変更する以外は無理なのでしょうか?

その他の回答 (1)

noname#30727
noname#30727
回答No.2

#1です。 >ファイルを読み込んで変更する以外は無理なのでしょうか? 最初の読み込みはBファイルを使い、その後はAファイルを使うようなマッピングが出来なければならないですが、そういう事は出来ません。 VirtualAlloc、AllocateUserPhysicalPages等、SEHを使用して自前で作れないかとも思いましたが、MSDNを読む限りでは、同一ページをプロセス間で共用できそうな気がしませんし、それにSEHを使うなんてマニアックすぎですよね。 MapViewOfFileにFILE_MAP_COPYを指定してAファイルが変更されないようにしても、Win2000だと共有メモリにはならないので、この方法も駄目です。 共有メモリが初期化される事がある以上、なんらかの排他制御と各タスクが再起動するような機能が必要だと想像できます。 再起動には時間がかかる。と思うしか無いと思います。

pota_1119
質問者

お礼

遅れまして申し訳ございません。 2度に渡り解答して頂きありがとうございました。 結局、inthefloiさんの言う通りファイル読み込みmemcpyすることにしました。

関連するQ&A