首页 文章

使用fallocate()在Linux中快速预分配大文件

提问于
浏览
1

在Windows上,寻找过去的EOF并截断文件(通过 SetEndOfFile() )允许预先分配一个大文件而不实际将额外的零写入磁盘,如果之后我按顺序写入文件(我这样做) .

如何在Linux中实现相同的效果?好像 ftruncate() 创建了一个稀疏文件,这不是我想要的,因为它不会减少磁盘可用空间 . 这让我想到 fallocate() 但是哪些文件系统完全支持这个功能(原生,不是由glibc模拟),或者更好:

Which mainstream filesystems do not support fallocate()?

1 回答

  • 0

    至少在以下文件系统上支持该操作:

    • XFS(自Linux 2.6.38起)

    • ext4(自Linux 3.0起)

    • Btrfs(自Linux 3.7起)

    • tmpfs(5)(自Linux 3.5开始)

相关问题