跳转到主要内容

模块用于公开posix_fallocate(3)、posix_fadvise(3)和fallocate(2)

项目描述

https://travis-ci.org/trbs/fallocate.svg?branch=master

fallocate公开了fallocate(2)、posix_fallocate(3)和posix_fadvise(3)的接口。

在Mac OS X上,fallocate()方法将使用apple等价的fallocate(2)。注意,这可能与实际情况不完全相同。

在围绕fallocate(2)调用的包装函数中使用时,传递给函数的参数与C调用略有不同。

此模块的参数如下

fallocate(fd, offset, length, mode=0)

而在C中,函数看起来像

fallocate(fd, mode, offset, length)

这样做的主要原因是因为模式参数通常不太使用,因此将其作为关键字参数默认值比每次都指定0要容易得多。

用法

功能:fallocate(fd, offset, len, [mode=0])

在文件对象或文件描述符上调用fallocate()。这允许调用者直接操作由fd引用的文件分配的磁盘空间,从偏移量开始的字节范围,持续len字节。

模式仅在Linux中可用。

除非指定以下可能的标志之一,否则应始终为0

FALLOC_FL_KEEP_SIZE     - do not grow file, default is extend size
FALLOC_FL_PUNCH_HOLE    - punches a hole in file, de-allocates range
FALLOC_FL_COLLAPSE_SIZE - remove a range of a file without leaving a hole

注意FALLOC_FL_COLLAPSE_SIZE是在Linux内核v3.15中引入的,并且在某些文件系统(例如ext4、xfs等)中可用。为了获取对它的访问权限,您必须在同时支持它的内核和文件系统上构建和运行。

示例

# preallocate using fallocate a 1kb file
with open("/tmp/test.file", "w+b") as f:
    fallocate(f, 0, 1024)

项目细节


下载文件

下载适合您平台的文件。如果您不确定该选择哪个,请了解有关安装包的更多信息。

源分布

fallocate-1.6.4.tar.gz (8.9 kB 查看哈希值)

上传时间

由以下提供支持