【发布时间】:2014-04-02 18:36:13
【问题描述】:
其实我有两个问题。
fallocate() 是做什么的?
我阅读了手册页并有以下理解。对于支持文件中的空洞的文件系统,fallocate() 用于在文件中打洞并分配新空间。对于没有漏洞的文件系统,fallocate()只能用于在文件结束后分配新空间,即只有在len + offset > file_size时才有效。
我的理解正确吗?如果是这样,我还有以下问题。
fallocate() vs ftruncate() 扩展文件时
现在我想创建一个新文件并在文件中分配特定大小的零填充字节。我意识到fallocate() 和ftruncate() 都可以完成这项工作。它们有什么区别?
顺便说一句,我知道fallocate() 不可移植,但由于我的程序仅适用于 Linux,因此未考虑到其他类 Unix 系统的可移植性。
谢谢!
【问题讨论】:
标签: c linux unix filesystems