我正在学习 POSIX 和 Linux 系统调用。目前,我正在为不同的系统开发一个使用不同功能复制文件的基本程序,除了 read()/write(),以便更好地理解我如何完成这项任务。当我在 Linux 下编写时,我看到系统调用 sendfile() 和 splice(),它们允许我将数据从一个文件描述符移动到另一个文件描述符而无需中间缓冲区(至少在程序中),但我没有在FreeBSD 到目前为止。
有什么办法可以做类似的事情吗?我期望大约相同的系统调用(或它的包装器)在没有中间缓冲区的情况下从 fd 复制到 fd。 FreeBSD 中的 sendfile() 仅适用于套接字,不适合我。