【发布时间】:2021-11-13 10:23:41
【问题描述】:
由于文件是作为块存储在磁盘上的,是否可以在块链的中间插入一个块?
这是因为,如果没有这样的 API,如果我想在文件中间的某个位置插入一个 4kb 的块,使用传统的读/写 api,我基本上必须在之后重写文件中的所有内容该位置并将它们移动 4kb。
我可以接受仅适用于 some 操作系统或 some 文件系统的答案。它不必跨平台或适用于每个文件系统。
(我也了解并非所有文件系统或硬件都使用 4kb 的块 - 适用于不同数字的答案也可以)。
【问题讨论】:
-
传统上没有办法做到这一点。最近这里有一篇关于 SO 的帖子,关于一个新的 Linux API,它可以让你这样做,尽管只适用于某些底层文件系统类型。不幸的是,我不记得细节了。
-
见this answer。 (所以也许不是最近,也不是那么“新”!)
标签: c database-design operating-system filesystems inode