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

相关推荐
爪哇部落算法小助手1 天前
每日两题day65
数据结构·c++·算法
橘颂TA1 天前
【剑斩OFFER】算法的暴力美学——颜色分类
数据结构·c++·算法·动态规划
wanhengidc1 天前
云手机 网络连接与持续性的表现如何
运维·服务器·科技·游戏·智能手机
小猿成长1 天前
Ubuntu搭建物联网平台(ThingsBoard)教程
linux·运维·ubuntu
代码不行的搬运工1 天前
RFC6811:BGP前缀源验证
运维·服务器·bgp网络
Archie_IT1 天前
openEuler 软件生态深度勘探:从六万软件包到多语言融合
linux·容器·性能测试·openeuler·多语言开发
fish_xk1 天前
c++基础扩展
开发语言·c++
阿沁QWQ1 天前
C++继承
开发语言·c++
啊吧怪不啊吧1 天前
C++之基于正倒排索引的Boost搜索引擎项目searcher部分代码及详解
c++·搜索引擎·项目
tokepson1 天前
香橙派AI Pro个人云平台 - 从零搭建全记录
linux·服务器·技术·记录