我浏览了一些链接,这些链接讨论了使用FILE_FLAG_NO_BUFFERINGFILE_FLAG_OVERLAPPED在Windows中复制文件的最快方法。它还讨论了如何
BUFFER SIZE作为256KB and 128KB进行读写操作的请求比1Mb快,其链接为:-
Explanation for tiny reads (overlapped, buffered) outperforming large contiguous reads?
我也在Linux中寻找类似的方法,该方法使我可以快速将DVD的内容复制到硬盘上。所以我想知道Linux中是否有一些文件操作标志可以为我提供最好的结果,或者Linux中哪种复制方法是最好的?我的代码都是用c ++编写的。

最佳答案

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

$ man 2 sendfile


“ sendfile()在一个文件描述符和另一个文件描述符之间复制数据。因为此复制是在内核中完成的,所以sendfile()的效率要高于read(2)和write(2)的组合,后者需要往返于彼此的数据传输用户空间。”

08-27 20:38
查看更多