sendfile的问题在于它无法使用文件fds复制两个文本文件。 错误是EINVAL。 //描述符无效或被锁定,或者in_fd无法使用类似mmap()的操作。

这到底是什么意思?

从sendfile的手册页(man sendfile)中,我找到了此语句。不确定是否可以复制两个常规文件。

当前(Linux 2.6.9):in_fd,必须与支持类似mmap()的操作的文件相对应(即,它不能是套接字);和 out_fd必须引用套接字。 通用标签

有帮助吗?

解决方案

sendfile()背后的想法是通过套接字(例如Web服务器)快速发送文件。常规文件可以使用GenericodiceTag编码,但不是套接字,因此当您将常规文件作为目标文件时,它会爆炸。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top