pub fn splice(
fd_in: i32,
off_in: Option<&mut i64>,
fd_out: i32,
off_out: Option<&mut i64>,
len: usize,
flags: u32,
) -> Result<usize>Expand description
splice(2) 在两个 fd 之间内核态零拷贝移动数据。
至少一个 fd 必须是管道(pipe)。常用于 socket ↔ pipe ↔ socket 中继。
§参数
fd_in- 输入 fd(socket / file / pipe)off_in- 输入偏移指针,None 表示使用当前文件偏移fd_out- 输出 fdoff_out- 输出偏移指针,None 表示使用当前文件偏移len- 最多移动的字节数(上限 2^31-1)flags- splice 标志
§返回
实际移动的字节数(0 表示 EOF)
§错误
LinuxError::Syscall { "splice", errno }- 系统调用失败