-1

我已经浏览了一些链接,这些链接讨论了在 windows 中使用FILE_FLAG_NO_BUFFERING和复制文件的最快方法FILE_FLAG_OVERLAPPED。它还讨论了如何请求读取和写入操作BUFFER SIZEas256KB and 128KB比 . 更快1Mb。链接是:- 解释微小读取(重叠、缓冲)优于大型连续读取? 我也在寻找 linux 中的类似方法,它允许我以快速的方式将 DVD 的内容复制到硬盘。所以我想知道 Linux 中是否有一些文件操作标志可以为我提供最好的结果,或者 Linux 中的哪种复制方式是最好的?我的代码都是c++。

4

1 回答 1

1

挂载您的 DVD,打开()您要复制的文件,然后使用 sendfile()。如果您想复制完整的 DVD,您还可以尝试 open() DVD 的 /dev 条目并将该描述符传递给 sendfile()。

$ man 2 sendfile

“sendfile() 在一个文件描述符和另一个文件描述符之间复制数据。因为这种复制是在内核中完成的,所以 sendfile() 比 read(2) 和 write(2) 的组合更有效,后者需要相互传输数据用户空间。”

于 2012-10-22T12:18:41.980 回答