0

ファイル マッピングを使用せずに別のプロセスからファイル マッピングに書き込む機能を使用して、Windows でファイル マッピングをどのように正しく開いて使用するか。

たとえば、プロセス A が大きなログ ファイルを書き込んだり、ファイルを開いたり、新しいデータを最後まで書き込んだり、新しいデータで書き換えたりします。

プロセス B は並行してこのファイルをファイル マッピングとして開き、時々ファイル マッピングを閉じずに更新のためにメモリ ページを読み取ります。

上で説明したロジックを実行したい理由を聞かないでください。私はそれができるかどうかを知る必要がありますか?

4

1 に答える 1

1

ReadFile通常のファイル システム機能 ( 、WriteFileなど)で更新するファイルに関連付けられたファイル マッピング オブジェクトを保持することを妨げるものは何もありません。しかし、あなたは結果が気に入らないでしょう。Windows は、他のプロセスがファイル マッピング関数を介してファイルを更新する場合、ファイル マッピング ビューが一貫していることを保証します。ファイルが他の方法で更新された場合、そのような保証はありません。実際、ファイル マッピング ビューに表示される内容が実際のファイルの内容と一致しないことはほぼ確実です。

だから、はい、これを行うことができます。しかし、マップされたビューが見ているものが実際にファイルにあるものであることを保証する方法がないため、そうすべきではありません。

于 2013-07-17T15:24:04.570 に答える