c - socketpair() 可以用来代替 pipe2() 并且应该在所有内核版本中都受支持?
问题描述
自 3.4 内核以来,仅 Linux 支持使用O_DIRECT
option in 。pipe2()
我有O_DIRECT
不支持选项的内核 2.6。所以socketpair()
可以更换pipe2()
。
我的代码片段:
if( pipe2( dx_evq, O_DIRECT | O_CLOEXEC ) ){perror( "pipe2 failure" );exit( EXIT_FAILURE );}
在我们的守护进程代码中,我们pipe2()
使用请求的选项来调用O_DIRECT
守护进程初始化过程的一部分。
我们收到以下错误:
pipe2 失败:参数无效
解决方案
推荐阅读
- c# - DateTime.TryParseExact 的结果有 DateTimeKind.Unspecified 尽管输入的日期时间字符串包含时区信息
- python-3.x - 是否可以使用 Drive API 获取完整的文档修订历史记录?
- docker - 使用 Jenkins 容器构建 Dockerfile 并部署 Flask 应用
- javascript - 对对象的数字数组进行排序
- node.js - 如何让 Strapi 使 Mongo / Mongoose 索引成为“id”列?
- java - Android - 警报对话框出现瞬间而不是变黑
- javascript - 使用 Mongoose 创建一个在 NodeJS 中过期的实体
- git - Git - 获取 repo 克隆地址
- javascript - 为什么变量会发生变化?
- c# - 不存在从 DbType UInt64 到已知 SqlDbType 的映射。小巧玲珑的 C#