6

在 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

4

1 回答 1

4

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

如果你想增加一个文件,就ftruncate()在你面前mmap()

于 2013-06-30T18:31:15.050 回答