使用mmap增加文件的大小

在Windows上的Python中,我可以通过创建一个大文件

    from mmap import mmap

f = open('big.file', 'w')

f.close()

f = open('big.file', 'r+')

m = mmap(f.fileno(), 10**9)

现在big.file大约是1 GB。但是,在Linux上,这将返回ValueError: mmap length is greater than

file size

有没有办法在Linux上获得与Windows相同的行为?也就是说,能够使用mmap?来增加文件的大小。

回答:

至少在POSIX系统上,mmap()不能用于增加(或减小)文件的大小。mmap()的功能是将文件的一部分映射到内存。合乎逻辑的是,您请求映射的东西应该确实存在!坦白说,我真的很惊讶您实际上能够在MS

Windows下执行此操作。

如果你想长文件,只是ftruncate()它之前mmap()它。

以上是 使用mmap增加文件的大小 的全部内容, 来源链接: utcz.com/qa/432568.html

回到顶部