splice, io_uring_prep_splice 调用(无效参数)

我想把 一个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` 字节的数据,其中其中一个文件描述符必须指向一个管道。

相关推荐
不染尘.2 分钟前
cookie和session技术及实现
服务器·网络·网络协议·计算机网络
大聪明-PLUS3 分钟前
企鹅网:Linux 网络
linux·嵌入式·arm·smarc
weixin_461769407 分钟前
3. 无重复字符的最长子串
c++·算法·滑动窗口·最长字串
Morwit10 分钟前
【力扣hot100】 312. 戳气球(区间dp)
c++·算法·leetcode
_F_y12 分钟前
五种IO模型
服务器·网络
掘根21 分钟前
【消息队列项目】服务器实现
运维·服务器
一只旭宝22 分钟前
Linux专题十:I/O 复用进阶(LT/ET 模式)同步,异步阻塞,以及 libevent 库核心知识点
linux·服务器·网络
Q741_14731 分钟前
C++ 栈 模拟 力扣 394. 字符串解码 每日一题 题解
c++·算法·leetcode·模拟·
阿闽ooo32 分钟前
桥接模式实战:用万能遥控器控制多品牌电视
c++·设计模式·桥接模式
Wuliwuliii42 分钟前
闵可夫斯基和、需存储的最小状态集
c++·算法·动态规划·闵可夫斯基和