前置于一个千兆字节的文件

daf*_*tal 10 performance file

将单个字符添加到多GB文件(在我的实际情况下是40GB文件)中最有效的方法是什么.

执行此操作没有限制.这意味着它可以通过工具,shell脚本,任何编程语言的程序,......

Pas*_*nen 8

没有真正简单的解决方案.没有系统调用来预先添加数据,只是附加或重写.

但是根据你对文件的处理方式,你可能会侥幸逃脱.如果顺序使用该文件,您可以创建一个命名管道并放置cat onecharfile.txt bigfile > namedpipe然后使用"namedpipe"作为文件.cat onecharfile.txt bigfile | program如果您的程序将stdin作为输入,则可以实现相同的目的.

对于随机访问,可以完成FUSE文件系统,但可能对此过于复杂.

如果你想让自己的手真的很脏,那就弄清楚怎么做

  • 分配一个数据块(关于inode和数据块结构)
  • 将它作为第二个块插入到文件的链中(或者首先,然后你就完成了)
  • 将文件的开头写入该块
  • 将单个字符写为文件中的第一个字符
  • 将第一个块标记为仅使用一个可用有效负载的字节(这对于最后一个块是可能的,我不知道文件链中间的块是否可能).

这有可能主要破坏你的文件系统,所以不推荐; 好开心.