我使用 .net 4 的 MemoryMappedFile.CreateNew(mapName, capacity) 创建了一个内存映射文件
我可以通过 cpython 的 mapName 访问这个 mmf 吗?
我尝试如下。
import mmap
map = mmap.mmap(-1, 0, mapName, 1)
但它返回 WindowsError [错误 87] 说参数不正确。
我正在使用Windows Vista。
我使用 .net 4 的 MemoryMappedFile.CreateNew(mapName, capacity) 创建了一个内存映射文件
我可以通过 cpython 的 mapName 访问这个 mmf 吗?
我尝试如下。
import mmap
map = mmap.mmap(-1, 0, mapName, 1)
但它返回 WindowsError [错误 87] 说参数不正确。
我正在使用Windows Vista。
我对 C# 完全没有经验,但我会尝试回答你的问题。
CreateNew 应该创建一个到不在文件系统中的文件的映射。请注意,这绝不是跨平台的。在 Windows 上,mmap.mmap 的 tagname 参数应该允许您映射这些标记映射。由于映射没有文件支持,所以 fileno 的 -1 也是正确的。长度为 0 将获得整个映射。然后问题在于访问。有人提到不提供访问参数将在 Windows 上提供直写映射,您可以尝试对此进行试验。
如果一切都失败了,请尝试回退到使用文件支持的内存映射,它更便携,也更常见。C# MemoryMappedFile 类为此提供了 CreateFromFile 方法。