从概念上讲,您可以做的是:
>按正常方式设置入站套接字fd和输出文件fd>用pipe(2)创建一个管道>在循环中:
pipe(2)
>使用splice从套接字读取管道的写入侧>也可以使用splice从管道的读取端写入文件
splice
重复上一步,直到读取所有数据.
Zero-Copy in Linux with sendfile() and splice()具有该技术的实现.