gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:18:11 28 4
gpt4 key购买 nike

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

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

哪些主流文件系统支持fallocate()

最佳答案

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

  • XFS(自 Linux 2.6.38 起)

  • ext4(自 Linux 3.0 起)

  • Btrfs(自 Linux 3.7 起)

  • tmpfs(5)(自 Linux 3.5 起)

关于c - 使用 fallocate() 在 Linux 中快速预分配大文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47888304/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com