为什么mmap返回的大小是零?

2024-06-11 15:05:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在研究beaglebone(运行angstromlinux)并尝试使用Python的mmap模块来获得对/dev/mem文件的读写访问权。在

但是,由于某些原因,下面的代码打印了一个值0。我对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]

退货:

^{pr2}$

Tags: 模块文件代码devsize原因memoffset
1条回答
网友
1楼 · 发布于 2024-06-11 15:05:05

因为像/dev/mem这样的设备索引节点在被^{}查询时报告的表观大小为0。这只是特殊设备节点的实现方式,因为询问设备节点有多大通常没有什么用处。(考虑/dev/zero/dev/kbd/dev/urandom,以及用于通信而不是数据存储的任何设备节点,例如表示照片扫描仪或输入设备的设备节点。)

您应该仍然能够从mmap句柄检索数据。在

相关问题 更多 >