0

如何在 Windows 上正确打开/使用文件映射,并能够在没有文件映射的情况下从另一个进程写入文件;

例如进程A写入大日志文件,它打开文件,将新数据写入末尾,或者用新数据重写它。

进程 B 并行打开此文件作为文件映射,并不时读取内存页面以进行更新,而无需关闭文件映射。

请不要问我为什么要做上面解释的逻辑。我需要知道可以做到吗?

4

1 回答 1

1

没有什么可以阻止您将文件映射对象与您正在使用普通文件系统函数( 、 等)更新的文件相关ReadFileWriteFile。但你不会喜欢结果。如果其他进程通过文件映射函数更新文件,Windows 保证文件映射视图是一致的。当文件以其他方式更新时,它不做这样的保证。事实上,它几乎可以保证文件映射视图显示的内容与文件的实际内容不匹配。

所以,是的,你可以这样做。但是您不应该这样做,因为您无法保证映射视图所看到的就是文件中的实际内容。

于 2013-07-17T15:24:04.570 回答