1

我正在编写一个程序,它将一些内容写入一个稀疏文件。说,我通过

fd = open(filepath, O_RDWR | O_CREAT | O_EXCL, 0644);
assert(fd != -1);
int s = ftruncate(fd, len);

len很大,但实际内容可能只需要几个kbs。

然后我在这个文件上做内存映射 IO。如何确保从此文件中删除内容,以便不存储临时内容,并且实际存储仍然“稀疏”?

感谢您的任何建议。

4

1 回答 1

-1

这个问题超出了C语言的范围。C 标准没有稀疏文件的概念,甚至没有 POSIX 文件句柄的概念。

答案是特定于操作系统的。对于 linux,您可以在这里找到解决方案:Linux 下操作稀疏文件的函数有哪些?Linux 上的详细稀疏文件信息

于 2021-05-12T08:00:56.910 回答