gpt4 book ai didi

windows - 使用内存映射文件同时允许其他进程完全访问

转载 作者:可可西里 更新时间:2023-11-01 09:26:03 26 4
gpt4 key购买 nike

我正在尝试在 Windows 下使用内存映射文件(使用 CreateFile/CreateFileMapping/MapViewOfFile 函数),并且我当前在调用 CREATE_FILE 时指定 FILE_SHARE_READ 和 FILE_SHARE_WRITE。但是,这会锁定文件以防止其他进程使用。

我想要的是在调用 CreateFileMapping 或 MapViewOfFile 时内存映射文件的快照,这样我就看不到对文件所做的任何更改(写入或删除)通过其他过程。有点像写时复制,但其他进程正在执行写入。我可以在 Windows 上使用内存映射文件来执行此操作吗?

最佳答案

这不是内存映射文件的工作方式。 Windows 对该文件进行了硬锁定,因此没有人可以更改其内容并使其与映射到 RAM 中的页面不同。 RAM 中的这些页面在创建文件 View 的所有进程之间共享。没有“撕下”选项。

您可以简单地映射文件并复制 View 中的字节。通常需要与其他进程进行一些同步。

关于windows - 使用内存映射文件同时允许其他进程完全访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7414579/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com