gpt4 book ai didi

python - 为什么 mmap 返回大小为零?

转载 作者:太空宇宙 更新时间:2023-11-04 11:23:24 24 4
gpt4 key购买 nike

我正在开发一个 beaglebone(运行 Angstrom Linux)并尝试使用 Python 的 mmap 模块来获得对 /dev/mem 文件的读写权限。

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

最佳答案

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

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

关于python - 为什么 mmap 返回大小为零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16445420/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com