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

相关推荐
唐墨12336 分钟前
linux kernel 比较数据大小的宏定义
linux·算法
程序开发阿元42 分钟前
密码不进工具:一个独立开发者的服务器凭据管理办法
linux·ssh
真好啊又活了一天4 小时前
服务器和虚机配置IPV6
运维·服务器·github
AR-26710-4 小时前
Linux Day33——定时任务+lvm
linux·运维
墨痕诉清风5 小时前
SSRF漏洞实战记录+OSS桶命令执行+MCP漏洞
linux·服务器·数据库
byte轻骑兵5 小时前
实战 4:BlueZ 源码中添加自定义设备过滤规则
linux·物联网·bluez·电脑蓝牙·嵌入式蓝牙
布莱克6055 小时前
Swift 常量详解:从 let 到编译期优化
服务器·开发语言·ssh·swift·常量·let
老歌老听老掉牙6 小时前
案例 7:二维 Rosenbrock 函数最小值(香蕉函数)
c++·pso
瓦瓦gogo6 小时前
从一个 TypeScript 函数开始理解 MCP 协议
linux·ubuntu·typescript
Severus_black6 小时前
【C++初阶】Stack、Queue算法题大练兵!
c语言·c++·算法·stl