前置大文件很困难,因为它需要将所有其他字符向前推。但是,可以通过如下操作 inode 来完成吗?:
在磁盘上分配一个新块并填充您的前置数据。
调整 inode 告诉它你的新块现在是第一个块,并将之前的第一个块碰撞到第二个块的位置,之前的第二个块到第三个位置,依此类推。
我意识到这仍然需要向前碰撞块,但它应该比必须使用临时文件更有效。
我还意识到新的第一个块将是一个“短”块(并非块中的所有数据都是文件的一部分),因为您的前置数据不太可能与块的大小完全相同。
或者,如果 inode 块是简单链接的,那么执行上述操作只需要很少的工作。
注意:我上次直接操作磁盘数据的经验是使用 Commodore 1541,所以我的知识可能有点过时了......