1

我必须在 Qt C++ 的程序中实现零复制方法,我阅读了它并得到了 transferto() 方法。如下所述: public void transferTo(long position, long count, WritableByteChannel target);

但我不明白它是如何工作的。它在内部写成,它取决于底层操作系统对零拷贝的支持。所以我尝试编写一个函数,但我没有在这里得到“位置”和“通道”的含义。

谁能帮我?

4

1 回答 1

4

在 C++ 中没有跨平台的方式来做零拷贝,在 Qt 中也没有零拷贝 API。您可以使用提供的 API 为您的目标操作系统实现它:

Linux通过sys/socket.h的sendfile、sendfile64、splice等系统调用支持零拷贝。Windows 通过 TransmitFile API 支持零拷贝。

资源

于 2013-06-14T11:27:40.747 回答