没有文件描述符的发送文件
Sendfile without file descriptor
我有一个内存区域,其中包含要通过以太网发送到其他客户端的数据。为了增加吞吐量,目前我正在使用sendfile API,而不是经典的发送/写入API。但据我所知,sendfile API需要一个用于输入的文件描述符,但我所拥有的只是原始内存数据。那么,为了使用sendfile API,我应该做些什么呢?
sendfile()
的主要好处是,它可以避免在send()
之前必须先将文件描述符中的read()
数据放入内存的开销。如果要发送的数据已经在内存中,则不需要sendfile()
。使用奇怪的解决方法将数据移动到文件中(如mmap()
)只会降低性能。
如果您运行linux,您可以查看splice
相关文章:
- 使用VerQueryValue检索应用程序的文件描述
- 如何在C/C++中用FD_set Unix设置套接字文件描述符
- I2C 文件描述符上的 I2C 总线可写/可读标志
- 许多文件描述符在调用sys_clone时
- AMQP-CPP >处理程序中的错误文件描述符
- 如何使用 WINAPI 和 C++ 提取可执行文件的文件描述?
- 正在等待在非阻塞文件描述符上长时间运行ioctl
- 有没有适用于Windows.lib文件的GNU二进制文件描述符(BFD)
- 如何强制文件描述符缓冲我的输出
- 如何从 boost::asio::ssl::stream<boost::asio::ip::tcp::socket> 获取本机套接字文件描述器?
- 哪个更适合从C++写入敏感的日志文件,在文件描述符上写()或文件上的fprintf()?
- 将 select() 与非基于文件描述符的输入一起使用
- accept(..) 似乎正在修改我给它的文件描述符参数
- 使用 Select 多路复用未命名的管道和其他文件描述符
- 提升 ASIO 绑定:错误的文件描述符
- 使用文件描述符移动对象
- 无法从零MQ ZMQ_SERVER套接字中获取文件描述符
- read() 上的不同行为取决于写入不可写内存时表示文件、匿名管道或套接字的文件描述符
- 我可以在不使用 FIOCANCEL 的情况下关闭 VxWorks 中的文件描述符吗?
- 将 Boost Asio 与 ZeroMQ 集成,文件描述符错误?