连接文件而不复制其内容

时间:2010-02-14 13:22:39

标签: c++ linux file file-io

(在C / C ++ / Linux中)

有没有办法连接文件A和文件B(或者实际上将一个A的内容附加到B的内容)只能通过改变文件系统而不需要数据复制的开销?然后可以丢弃文件A。

由于

2 个答案:

答案 0 :(得分:7)

如果文件是块结构的,并且操作系统支持块结构文件(如某些那样),那么(原则上)是。但是,当您询问Linux时,我假设您正在讨论面向字节流的文件系统,其中可能无法完全使用磁盘块。在这种情况下,一些复制是不可避免的,实际上你必须复制整个文件。

答案 1 :(得分:2)

您可以编写自己的文件系统(例如,使用FUSE),提供便宜连接的伪文件。但我想这对于任何用例来说都是过度的,因为你必须关心引用和东西。