c - 如何在 C 中不使用零填充截断 FAT32 文件系统中的文件?

标签 c fat32

我有一个 2TB 硬盘,包含单个分区的 FAT32 文件系统。在使用 ftruncate() 将文件截断到更大的大小(例如 100MB 或 200MB)时,执行零填充需要 5 到 10 秒的时间。有没有什么方法可以缩短文件截断时间或不使用零填充来截断文件?

最佳答案

没有。根据 GNU C 库页面,Ftruncate 专门在末尾添加零。它还说你可以尝试只使用截断,它会尝试用空洞来填充它,但这并不是所有机器都支持的,所以你可能无法做到这一点。

您可以尝试通过打开 inode 并更改值使文件系统认为文件更大来破解文件系统,但这是一个安全问题。

关于c - 如何在 C 中不使用零填充截断 FAT32 文件系统中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16299269/

相关文章:

python - 使用python获取fat32属性

c - 查找 FAT32 文件系统上主引导记录数据的根目录偏移量

c - C语言中如何从数组中随机选取元素?

c - 我遇到段错误但似乎无法找到它

c - C中指针复制的问题

linux - 如何在 Linux 上的 SDCARD 中写入超过 2000,000 个文件

windows - 在 Windows 上设置 Mercurial 的执行位

sh : 1 file not found error with system() command? 的原因在 StackOverflow 中尝试了可能的解决方案(如下所列)但失败

c - Read raw C string to Rust...在此上下文中将有符号转换为无符号的正确方法是什么?

windows - Windows 7 格式化驱动器上的 FAT32 文件分配表大小超出 FAT32 规范