没有文件描述符的发送文件

Sendfile without file descriptor

本文关键字:文件 描述      更新时间:2023-10-16

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

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

如果您运行linux,您可以查看splice