Windows CreateFileMapping:具有相同备份文件的不同文件映射对象

我知道我们可以使用文件映射来在两个进程之间共享内容,但是这需要相同的文件映射对象。

如果每个进程使用自己的文件句柄创build自己的文件映射对象,但每个文件句柄指向同一个文件,会发生什么?

谢谢张

从文档:

创建文件映射对象实际上并不是将视图映射到进程地址空间。 MapViewOfFile和MapViewOfFileEx函数将文件视图映射到进程地址空间。

除了一个重要的例外情况, 从同一文件支持的任何文件映射对象派生的文件视图在特定时间是连贯的或相同的。 一致性保证了进程内的视图和不同进程映射的视图。

异常与远程文件有关。 虽然CreateFileMapping可以处理远程文件,但并不能保持一致。 例如,如果两台计算机都将文件映射为可写,并且都改变了同一页,则每台计算机只能看到自己写入的页面。 数据在磁盘上更新时,不会合并。