没有文件描述符的Sendfile

时间:2014-09-03 02:11:19

标签: c++ c linux sockets sendfile

我有一个内存区域,其中包含我想通过以太网发送给其他客户端的数据。为了提高吞吐量,目前我正在摆弄sendfile API而不是经典的send / write API。但据我所知,sendfile API需要一个文件描述符来输入,但我所拥有的只是原始内存数据。那么我该怎么做才能使用sendfile API?

2 个答案:

答案 0 :(得分:3)

sendfile()的主要好处是,它允许您在read()之前避免将文件描述符中的第一个send()数据带入内存的开销。如果您要发送的数据已在内存中,则不需要sendfile()。使用奇怪的变通办法将数据移动到文件中(如mmap())只会降低性能。

答案 1 :(得分:-1)

如果你运行linux,你可以看看splice