2017-10-19 49 views
-1

我试图通过python跟踪一个bug,现在把我带到了ansi-c的mmap。mmap:没有这样的设备

import os, mmap 
filename = <name to ntfs file> 
os.path.exists(filename) # is true 
with open(filename, 'rb') as f: 
    # f.fileno() is 3 or 19 (not -1) 
    mmap.mmap(f.fileno(), 1, access=mmap.ACCESS_READ, offset=0) 
    # OSError [19]: No such device 
    # this is thrown by: 
    # cpython/Modules/mmapmodule.c:1188 
    # apparently b/c systems `mmap` (line 1177) can't 
    # find the memory. 

这里的NTFS目录

[email protected]:~/Code/cpython$ mount | grep labs 
bmidata2:cliff.tcp on /labs/cliff type fuse.glusterfs (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other,max_read=131072) 

现在这一切对CentOS7的安装信息。你认为我应该从哪里出发?这是无法回忆的记忆,还是我们可以修复的东西?

相关可能是this。使用numpy.memmap时出现问题。

为什么说卡纸没有卡纸!

+0

您使用的是内置的蟒蛇MMAP,或numpy.memmap:这是由MAP_PRIVATE更换MAP_SHARED解决?你的问题是矛盾的。 – mbrig

+0

'numpy.memmap .__ init__'在numpy/core/memmap.py:264中使用'mmap.mmap',我的朋友。 – Jus

+0

所以你没有向我们展示你使用的实际代码?请将其编辑为您的问题,否则任何人都无法帮助您。 (请参阅关于MCVE的堆栈溢出指南) – mbrig

回答

1

事实上,这是保险丝的问题。 Apparently,我的glusterfs版本在共享模式下仍然存在mmap问题,例如mmap(.., flags=mmap.MAP_SHARED, ..)

import os, mmap 
filename = <name to ntfs file> 
os.path.exists(filename) # is true 
with open(filename, 'rb') as f: 
    mmap.mmap(
     f.fileno(), 1, prot=mmap.PROT_READ, 
     flags=mmap.MAP_PRIVATE, offset=0) 

那么一切都桃色再次:)

相关问题