C++ 使用Linux将DVD内容复制到硬盘的最快方法是什么?

C++ 使用Linux将DVD内容复制到硬盘的最快方法是什么?,c++,linux,dvd,C++,Linux,Dvd,我已经浏览了一些链接,其中谈到了在windows中使用文件\u标志\u无缓冲和文件\u标志\u重叠复制文件的最快方法。它还讨论了如何 对缓冲区大小为256KB和128KB的读写操作的请求比1Mb快。该请求的链接是:- 我还希望在linux中使用类似的方法,使我能够快速地将DVD的内容复制到硬盘上。所以我想知道Linux中是否有一些文件操作标志可以为我提供最好的结果,或者Linux中哪种复制方式是最好的?我的代码都是C++的。p> 装入DVD,打开()要复制的文件,然后使用sendfile()。如

我已经浏览了一些链接,其中谈到了在windows中使用
文件\u标志\u无缓冲
文件\u标志\u重叠
复制文件的最快方法。它还讨论了如何 对缓冲区大小
256KB和128KB
的读写操作的请求比
1Mb
快。该请求的链接是:- 我还希望在linux中使用类似的方法,使我能够快速地将DVD的内容复制到硬盘上。所以我想知道Linux中是否有一些文件操作标志可以为我提供最好的结果,或者Linux中哪种复制方式是最好的?我的代码都是C++的。p> 装入DVD,打开()要复制的文件,然后使用sendfile()。如果要复制完整的DVD,还可以尝试打开()DVD的/dev条目,并将该描述符传递给sendfile()


sendfile()在一个文件描述符和另一个文件描述符之间复制数据。由于此复制是在内核中完成的,因此sendfile()比读(2)和写(2)的组合更有效,后者需要在用户空间之间传输数据

我不知道我看到一个用户投了反对票,但没有任何具体的评论或这样做的理由?系统(“dd if=/dev/dvd of=/path/to/img bs=16384”)应该足够了fast@stijn据我所知,这是一个系统调用,但请您解释一下上面这一行以及那里的
bs
是什么?@stijn我的DVD将有一个包含一些文件的播放列表。我想从那些播放列表中复制特定的文件。它还会有那么高的效率吗?dd(或man dd)做原始拷贝,所以不,你不能用它只拷贝dvd的一部分
$ man 2 sendfile