暴露posix_fallocate(3)、posix_fadvise(3)和fallocate(2)的模块
fallocate的Python项目详细描述
fallocate向fallocate(2)、posix_fallocate(3)和 Posix_Fadvise(3)。
在mac os x下,fallocate()方法将使用apple等效的 法洛卡特(2)。请注意,这可能并不完全相同。
在fallocate周围使用包装函数时(2)调用参数 给定的函数与c调用稍有不同。
此模块具有如下参数:
fallocate(fd, offset, length, mode=0)
在C语言中,函数看起来像:
fallocate(fd, mode, offset, length)
其主要原因是模式参数不常被使用,并且 因此,将默认值作为关键字参数比必须 每次指定0。
用法
函数:fallocate(fd,offset,len,[模式=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
note:falloc\u fl\u collapse\u 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)