2017-10-19 139 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) 

那麼一切都桃色再次:)

相關問題