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