我想把 一个socket 文件零拷贝到磁盘文件
io_uring_prep_splice(sqe,
ctx->client_fd ,0,
ctx->file_fd ,start_pos,
size ,
0 );
uint64_t user_data = (uint64_t) op_type::OP_INSTALL_BLOCK << 32 | ctx->ctx_id ;
io_uring_sqe_set_data64(sqe,user_data);
io_uring_submit(&ring);
错误码一直是 -22 (无效参数)
查过相关资料了解到 splice 必须要有一个文件描述符为管道

`splice()` 函数在两个文件描述符之间移动数据,而无需在内核地址空间和用户地址空间之间进行复制。它从文件描述符 `fd_in` 向文件描述符 `fd_out` 转移最多 `len` 字节的数据,其中其中一个文件描述符必须指向一个管道。