0
我正在研究beaglebone(運行Angstrom Linux)並嘗試使用Python的mmap
模塊獲取對/dev/mem
文件的讀寫權限。爲什麼mmap返回零大小?
但是,由於某些原因,下面的代碼打印出的值爲零。我對mmap相當陌生,我不確定是否有什麼明顯的缺失。
from mmap import mmap
mmap_offset=0x44c00000
mmap_size=0x48ffffff-mmap_offset
with open("/dev/mem", "r+b") as f:
testMap=mmap(f.fileno(),mmap_size,offset=mmap_offset)
print testMap.size()
print testMap[0]
回報:
0
8
[The docs](http://docs.python.org/2/library/mmap.html#mmap.size)say *「返回文件的長度,該長度可以大於內存的大小「*也許這是因爲所有設備節點根據'stat()'有一個表觀大小爲0?如果你真的試圖從mmap對象中獲取數據會發生什麼? – cdhowie 2013-05-08 16:18:39
@cdhowie說什麼。另外,我認爲你的意思是「0x49000000」而不是「0x48ffffff」,因爲使用「0x48ffffff」,你最終不會映射最後一頁的最後一個字節。 – Celada 2013-05-08 16:27:05
我已經更新了代碼,我認爲它可以解答你的問題......它看起來像是存儲器映射中的值。我不熟悉'stat()' – Chris 2013-05-08 16:28:07