将相同数据写入两个文件的有效方法

时间:2017-10-12 10:57:01

标签: c++ c linux file posix

只是想知道,在Linux和C / C ++上将相同数据写入两个文件的最有效方法是什么。

例如,这是最微不足道的方式。

while(1) {

    ... getting data from somewhere ....

    write(fd1, data, datalen);
    write(fd2, data, datalen);
}

然而,缺点是即使数据相同,内核也需要复制数据两次。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

  

将相同数据写入两个文件的最有效方法是什么

  1. 仅将数据写入一个文件。
  2. 将该文件复制到另一个文件。使用OS调用有效地执行此操作(Copy a file in a sane, safe and efficient way)。
  3. 第2步的另一种方法是创建一个硬链接(检查link())。

    但是,请注意不要过早优化的受害者。我这不是你的程序的瓶颈,然后只是使用简单易读的方法。