访问通过python在.net上创建的内存映射文件

时间:2010-07-15 15:28:00

标签: .net python memory-mapped-files

我使用.net 4的MemoryMappedFile.CreateNew(mapName,capacity)制作了一个内存映射文件

我可以通过mapName从cpython访问这个mmf吗?

我试过以下。

import mmap
map = mmap.mmap(-1, 0, mapName, 1)

但它返回WindowsError [错误87],说参数不正确。

我正在使用windows vista。

1 个答案:

答案 0 :(得分:0)

我绝对没有C#的经验,但我会尝试回答你的问题。

CreateNew应该创建一个映射到不驻留在文件系统中的文件。请注意,这不是任何方式的跨平台。在Windows上,mmap.mmap的tagname参数应该允许您映射这些标记的映射。由于映射不是由文件支持,因此fileno的-1也是正确的。长度为0将获得整个映射。问题在于访问权限。有人提到不提供访问参数将在Windows上提供直写映射,您可以尝试尝试使用它。

如果所有其他方法都失败了,请尝试使用文件支持的内存映射,它更便携,更常见。 C#MemoryMappedFile类为此提供了CreateFromFile方法。