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

相关推荐
鱼很腾apoc2 小时前
【MySQL】第4期 用户管理与 C 语言连接编程详解
linux·服务器·c语言·mysql·connector/c
衍玊2 小时前
多路转接原理与应用
c++
刚入门的大一新生2 小时前
Linux-进程间通信1
linux·运维·服务器
张宇Joaquin2 小时前
Linux系统下磁盘扇区512n、512e和4kn的区别
linux·运维·数据库
道虽迩,不行不至2 小时前
数据库自动连库执行增量脚本-Linux
linux·数据库
GeW2 小时前
新质生产力发展路线图来了,Linux和数据库人该怎么接
linux·数据库
西索斯coding3 小时前
Grok 4.7 调用一直 401 怎么办?不是 Key 过期,是 Authorization 头格式问题——排查全流程 + 修复示例
服务器·开发语言·ai·php
yunwei373 小时前
eBPF 示例:使用 CUPTI 构建 GPU 火焰图分析器
linux·后端·性能优化
const_qiu3 小时前
第四章 07:4.7 本章小结
java·运维·服务器·人工智能
张宇Joaquin3 小时前
自研SP600系列网卡驱动跟麒麟V10 SP3 2403配套关系
linux·运维·网络