c++ - 发送没有文件描述符的文件

标签 c++ c linux sockets sendfile

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

最佳答案

sendfile() 的主要好处是它可以让您避免必须首先 read() 数据从文件描述符到内存中的开销,然后才能发送() 它。如果要发送的数据已经在内存中,则不需要 sendfile()。使用奇怪的解决方法将数据移动到文件中(例如 mmap()ing 它)只会降低性能。

关于c++ - 发送没有文件描述符的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25635161/

相关文章:

c++ - OMNeT++ cPacket 作为 std::bitset 应用 Reed-Solomon 编码

c++ - cout 能抛出异常吗?

用 C 计算文本文件中的单词到链接列表中

c - 将 int 转换为 char 数组的函数,一些问题

c - 如何将c程序转换为cgi?

linux - 将最后四行移动到文本文件中的第二行

c++ - 此套接字选择代码有什么问题?

c++ - C#/C++ 异步反向 pinvoke?

ruby -MCollective : how to get the output of a command into a ruby variable (or object)

c++ - 看似模棱两可的模板函数重载