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

相关推荐
xsc-xyc7 小时前
用 Tailscale + Syncthing 实现手机、电脑与 NAS 的跨网络文件同步
linux·网络·网络安全·智能手机·电脑
beethobe8 小时前
PythonQt 学习之旅(一):从零构建 C++ 与 Python 的桥梁
c++·python·学习
鹏易灵8 小时前
C++——2.常量与 const、constexpr 初识详解
java·开发语言·c++
IsJunJianXin8 小时前
pdd小程序 cdp 保存响应体
linux·服务器·小程序·pdd小程序·拼多多响应体解密·小程序cdp·拼多多rpc取响应体
神仙别闹8 小时前
基于C++ 实现 BP 神经网络
开发语言·c++·神经网络
郝学胜-神的一滴8 小时前
CMake 019:程序生成与清理全解析
开发语言·c++·qt·程序人生·软件构建·cmake
爱就是恒久忍耐8 小时前
现代CMake的build方式
linux·运维·服务器
三8448 小时前
重定向/管道符/通配符/转义字符/VI/VIM
运维·服务器
qq_谁赞成_谁反对8 小时前
甲方IT的成长之路--nginx实战--2604
服务器·数据库·nginx
fofantasy9 小时前
NSK LH25FL 升级至 NH25EM 技术规格指南
服务器·网络·数据库·经验分享·规格说明书