2012-04-12 16 views
1

Ich weiß, dass wir die Dateizuordnung verwenden können, um Inhalte zwischen zwei Prozessen zu teilen, aber dies erfordert das gleiche Dateizuordnungsobjekt.Windows CreateFileMapping: verschiedene Dateizuordnungsobjekte mit derselben gesicherten Datei

Was passiert, wenn jeder Prozess ein eigenes Dateizuordnungsobjekt mit einem eigenen Dateihandle erstellt, aber jedes Dateihandle auf die gleiche Datei verweist?

dank Chang

+0

I * rate * Wer zuletzt schreibt, überschreibt den zuvor geschriebenen Inhalt. – Asha

Antwort

5

Von Dokumentation:

eine Dateizuordnungsobjekt erstellen Karte nicht wirklich den Blick in einen Adressraum Prozess. Die Funktionen MapViewOfFile und MapViewOfFileEx ordnen eine Ansicht einer Datei einem Prozessadressraum zu.

Mit einer wichtigen Ausnahme sind Dateiansichten, die von einem Dateizuordnungsobjekt abgeleitet wurden, das von derselben Datei gesichert wird, zu einer bestimmten Zeit kohärent oder identisch. Die Kohärenz ist für Ansichten innerhalb eines Prozesses und für Ansichten gewährleistet, die von verschiedenen Prozessen zugeordnet werden.

Die Ausnahme bezieht sich auf Remote-Dateien. Obwohl CreateFileMapping mit Remote-Dateien funktioniert, werden sie nicht kohärent. Wenn beispielsweise zwei Computer eine Datei als schreibbar zuordnen und beide die gleiche Seite ändern, sieht jeder Computer nur seine eigenen Schreibvorgänge auf der Seite. Wenn die Daten auf der Festplatte aktualisiert werden, wird sie nicht zusammengeführt.