Linux 上的 Python mmap“权限被拒绝”

2024-03-23

我有一个非常大的文件,我试图用 mmap 打开它,但它给我的权限被拒绝。我尝试过不同的标志和模式os.open但它对我不起作用。

我究竟做错了什么?

>>> 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
>>> 

(使用内置的open()通过 python 文档示例工作,但它似乎在读和写模式下打开多个文件句柄。我所需要的一切mmap.mmap方法是文件号,所以我不认为我需要创建一个file目的;因此我尝试使用os.open())


我认为这是一个标志问题,尝试以只读方式打开:

mfd = os.open('BigFile', os.O_RDONLY)

并且 mmap.mmap 默认情况下会尝试映射读/写,因此只需映射只读:

mfile = mmap.mmap(mfd, 0, prot=mmap.PROT_READ)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 上的 Python mmap“权限被拒绝” 的相关文章

随机推荐