【发布时间】:2010-12-04 06:45:27
【问题描述】:
我至少需要测试文件中的字节范围是否确实存在或无效。
它需要在主要操作系统上运行:Unix (Linux/MacOSX/FreeBSD) 和 Windows。
我想仍然没有办法在文件中打洞,还是有一些文件系统特定的 API 和建议?这对于日志文件也非常有用。
【问题讨论】:
标签: c filesystems unix
我至少需要测试文件中的字节范围是否确实存在或无效。
它需要在主要操作系统上运行:Unix (Linux/MacOSX/FreeBSD) 和 Windows。
我想仍然没有办法在文件中打洞,还是有一些文件系统特定的 API 和建议?这对于日志文件也非常有用。
【问题讨论】:
标签: c filesystems unix
在 Windows 上,您可以使用 FSCTL_GET_RETRIEVAL_POINTERS 来查找文件簇和磁盘之间的映射。
相应的 Linux(可能还有其他一些 posixes)IOCTL 是 FIBMAP
【讨论】:
我知道没有可移植的方法来测试稀疏性。要创建带孔的文件,您必须在零孔上seek(),而不是写入它们。这显然只在创建新文件或扩展旧文件时有效。在预先存在的零上使用seek() 将无济于事。
【讨论】: