在Linux上,Python mmap'Permission denied'的问题?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (308)

代码如下:

>>> import os,mmap
>>> mfd = os.open('BigFile', 0)
>>> mfile = mmap.mmap(mfd, 0)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
mmap.error: [Errno 13] Permission denied
>>> 
提问于
用户回答回答于

以只读的方式打开:

mfd = os.open('BigFile', os.O_RDONLY)
用户回答回答于

你不能用os.stat/os.fstat使用块设备获取设备的大小(始终为0),但可以使用file.seekfile.tell:

f = file("/dev/loop0", "rb")
f.seek(0, 2)  # Seek relative to end of file
size = fh.tell()
fh = f.fileno()

m = mmap.mmap(fh, size, mmap.MAP_PRIVATE, mmap.PROT_READ)

扫码关注云+社区

领取腾讯云代金券