*nix select 和 exceptfds/errorfds 语义

2023-12-22

The select http://www.opengroup.org/onlinepubs/007908775/xsh/select.html系统调用需要 3 个文件描述符集来监视 fd 的可读/可写和文件描述符上的“异常”。

我的选择man page http://web.archive.org/web/20070710123713/http://man.netbsd.se/?find=select%202%2020没有太多说明exceptfd描述符集。它是干什么用的;它可以并且将会在文件描述符上通知什么类型的异常?

我假设这对于描述符类型可能有所不同......无论是 TCP 套接字、管道、 tty 等)。有谁有关于什么样的错误的更多信息select可以报​​告不同种类的描述符吗?


有时人们认为除外fds需要检测错误,但这是一个误解。错误将被标记在readfds。尽管 POSIX 需要它(甚至调用参数errorfds),这取决于操作系统是否也标记了错误除外fds。实际上,只有当您关心时才需要此参数特殊条件,但很少需要检测这些。

什么符合异常条件取决于文件描述符的类型,但到目前为止最常见的用途是在 TCP 套接字上,它指示可以使用以下命令读取带外数据recv()MSG_OOB旗帜。然而,TCP 带外数据有许多怪癖(例如,只有 1 个字节可以突出),因此很少使用。

在最近的 Linux 内核中除外fds可用于检测某些 sysfs 属性何时发生更改。可以通过读取下面的相应文件来读取属性的当前值/sys, and a select()文件描述符上将标记除外fds当属性改变时。然而,目前这仅适用于某些属性以及安装更改(/proc/mounts).

此外,某些设备驱动程序将使用以下方式标记某些特定于设备的条件除外fds.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

*nix select 和 exceptfds/errorfds 语义 的相关文章

  • 如何使用不同的基本路径托管 Blazor WebAssembly 应用程序

    我有一个 Blazor Webassemble NET 托管应用程序 在我们托管它的服务器上 应用程序的基本路径将是mydomain com coolapp 因此 为了尝试让应用程序在服务器上正确呈现 我一直遵循本页 应用程序基本路径 部分
  • 在 LINQ 查询中进行转换

    是否可以在 LINQ 查询中进行强制转换 为了编译器的缘故 下面的代码并不糟糕 但最好将其放入一个查询中 Content content dataStore RootControl as Controls Content List
  • copy_from_user() 错误:目标大小太小

    我正在为内核模块编写 ioctl 处理程序 我想从用户空间复制数据 当我编译禁用优化的代码时 O0 gflags 编译器返回以下错误 include linux thread info h 136 17 error call to bad
  • 非模板函数中的尾随返回类型[重复]

    这个问题在这里已经有答案了 我见过有人使用以下语法来实现函数 auto get next gt int 代替 int get next 我理解两者 并且我知道尾随返回类型语法对于使用 decltype 的模板代码很有用 就我个人而言 我会避
  • 并行运行多个任务

    我有一个代理列表 每个代理都会访问不同的站点并从站点中提取所需的数据 目前它一次只做一个 但我希望同时运行 10 20 个任务 这样它就可以一次性从 20 个站点下载 而不是只下载一个 这是我目前正在做的事情 private async T
  • 如何在 C++ 中为指针“this”赋值

    在函数中 如何分配this一个新的价值 您可以分配对象this点于 this XY 但你不能分配直接值this this XY Error Expression is not assignable
  • 我担心我添加了太多接口

    我正在构建我的领域模型并继续重构它 正如我所做的那样 我发现我喜欢接口 因为它允许我根据接口为具体类型创建可重用的方法 控制器 视图 但是 我发现每次向域实体之一添加新属性时 我都会创建一个接口 例如 我有一个会员状态从抽象继承的对象Ent
  • 维护 VS Test Project 中单元测试方法之间的上下文

    我想按顺序运行以下单元测试 使用随机数字的名称 密码等创建新客户 检索刚刚创建的客户并断言其属性包含相同的随机数 对同一用户调用 ForgotPassword 函数 并使用相同的随机数作为用户名 清楚地看到 我需要生成一次随机数 并在 3
  • 自己绘制的WPF自定义滑块

    这是我关于堆栈溢出的第一个问题 所以不要踢它 我在尝试创建 Mac 风格的滑块控件时遇到问题 我已经发现这个解决方案 http www codeproject com KB miscctrl MAC Slider aspx我已经在我的解决方
  • X 轴和 Z 轴上的 Quaternion.Slerp,无 Y 轴

    I am trying to rotate the Player about X Y and Z axis The Y axis should not move from last angle Example if I rotate 45
  • 在 clang 中向量化函数

    我正在尝试根据此用 clang 对以下函数进行矢量化铿锵参考 http llvm org docs Vectorizers html 它采用字节数组向量并根据以下条件应用掩码this RFC https www rfc editor org
  • Clang 5.0 上的 vsprintf 和 vsnprintf [-Wformat-nonliteral] 警告

    我有这段代码 static void err doit int errnoflag int level const char fmt va list ap int errno save unsigned long n char buf MA
  • 具有多个父项的 Qt 树模型

    我想构建一棵树 其中一个元素可以引用另一个元素 我想要构建的树是 像这样的东西 A B C D E F P this is a pointer to C D first child of C E second child of C I fo
  • g++ / gcc 是否支持 C++20 新的atomic_flag 功能?

    根据参考参数 https en cppreference com w cpp atomic atomic flag c 20 有丰富的 对我来说有用的 支持atomic flag运营 然而 目前尚不清楚 gcc 是否支持这些功能 它们在任何
  • 如何防止 Lotus Notes 用户转发或复制通过 System.Net.Mail 发送的邮件?

    我想使用 SMTP 客户端 uiing microsft net 以 C 作为编程语言发送电子邮件 但是对于通过SMTP客户端发送的电子邮件 我们是否可以添加 禁止转发 或 禁止复制 等安全功能 我不希望电子邮件的收件人转发或复制电子邮件的
  • 异步/等待 - 是*并发*吗?

    我一直在考虑 C 5 中新的异步内容 并且出现了一个特殊问题 据我了解 await关键字是一个简洁的编译器技巧 语法糖来实现连续传递 http en wikipedia org wiki Continuation passing style
  • 跟踪白色背景中的白球(Python/OpenCV)

    我在 Python 3 中使用 OpenCV 来检测白场上的白 黑球 并给出它的精确 x y 半径 和颜色 我使用函数 cv2 Canny 和 cv2 findContours 来找到它 但问题是 cv2 Canny 并不总是检测到圆的完整
  • C++ 中的析构函数

    我的 AB h 文件中有一个构造函数 class AB private int i public AB i 0 constructor AB i 0 destructor virtual void methodA unsigned int
  • 使用通用存储库模式和流畅的 nHibernate

    我目前正在开发一个中型应用程序 它将访问不同站点上的 2 个或更多 SQL 数据库等 我正在考虑使用类似的东西 http mikehadlow blogspot com 2008 03 using irepository pattern w
  • Adobe Illustrator 中的折线简化如何工作?

    我正在开发一个记录笔划的应用程序 您可以使用定点设备来绘制笔划 在上图中 我绘制了一个笔划 其中包含 453 个数据点 我的目标是大幅减少数据点的数量 同时仍然保持原始笔画的形状 对于那些感兴趣的人 上图笔画的坐标可以作为GitHub 上的

随机推荐

  • Azure DevOps Pipelines,作业如何知道它是从计划触发的?

    我有一个 Azure DevOps 系统已启动并正在运行 并具有根据 PR 以及夜间计划运行管道的触发器 如下所示 trigger batch true branches include main release pre release s
  • 无法部署 - 错误:您的应用程序版本不能超过 500 个

    部署到 EB 时出现以下错误 错误 您的应用程序版本不能超过 500 个 任何一个 删除某些应用程序版本或请求增加限制 我手动删除了一些版本 我不希望部署因为这个限制而失败 Elastic Beanstalk 是否有办法自动驱逐未使用的版本
  • iOS 嵌套视图控制器视图位于 UIViewController 的视图内?

    在 iOS 中 在 UIViewController 的视图中嵌套视图控制器的视图通常是不好的编程习惯吗 举例来说 我想要某种可以响应用户触摸的交互元素 但只占据屏幕的 25 我想我会将此嵌套视图控制器添加到我的 UIViewControl
  • Yii 2 嵌套形式

    首先抱歉我的英语不好 我正在使用Yii2 dynamicforms 扩展 https github com wbraganca yii2 dynamicform到 Yii 2 中的嵌套表单 下列的本指南 https github com w
  • 如何正确实现自定义迭代器和const_iterators?

    我有一个自定义容器类 我想为其编写iterator and const iterator类 我以前从未这样做过 也未能找到合适的操作方法 关于迭代器创建的准则是什么 我应该注意什么 我还想避免代码重复 我觉得const iterator a
  • Javascript 检测文本区域中的滚动条

    我想知道是否有人知道我将如何检测滚动条何时出现在textarea 我目前在 JavaScript 中使用 mootools 但在让它检测滚动条时遇到问题 function has scrollbar elem id const elem d
  • 带动画的RemoveFromSuperView() - AnimationWillEnd不会触发

    我有一个 UIView 并尝试使用动画 淡入 alpha 0 0 将其从其超级视图中删除 工作正常 但视图永远不会从超级视图中删除 尽管我向 AnimationWillEnd 添加了委托 这是代码 控制台输出不会被写入 视图也不会被删除 怎
  • Swing 应用程序在哪里使用?

    现在人们真的使用 Swing 应用程序吗 我没有找到使用它们的地方 是否可以跳过 AWT 和 Swing 包 不过我学到了一些基础知识 如果您专门为网络编写内容 您可能可以跳过 Swing 但否则您绝对会遇到它 我从来没有开发过没有 Swi
  • 将 Switch 小部件添加到 ActionBar 并响应更改事件

    我可以知道如何在 ActionBar 中添加 Switch 小部件并处理单击事件或切换更改事件吗 现在我可以膨胀 ActionBar 中的 Switch 但无法响应更改事件 我已将以下内容添加到 main xml 中 menu menu
  • express.Router 和 app.get 之间的区别?

    我从 NodeJS 和 Express 4 开始 我有点困惑 我正在阅读 Express 网站 但看不到when使用路由处理程序或何时使用express Router 正如我所看到的 如果我想在用户点击时显示页面或其他内容 show例如我应
  • 在 Excel VBA 中添加到数组函数

    我正在尝试在 for 循环中将一个数组添加到 Double 数组的数组中 这是我的代码 Sub Test3 Dim a As Double i As Integer ReDim a 1 To 10 1 To 3 Dim d For i 1
  • Android Studio 3.0:无法解决模块依赖关系

    我有一个主要项目和第二个项目 模块 我导入后module项目作为模块依赖项app项目并尝试同步所有内容 我收到以下错误 Unable to resolve dependency for app debug compileClasspath
  • 迅速。如何将文本行追加到 file.txt 顶部?

    我正在实现一个小型记录器 在其中写入 TXT 文件 我希望最后一个事件位于文件顶部 但我无法使其正常工作 互联网上的所有示例都使用 fileHandle seekToEndOfFile 在文件末尾写入 这就是我所拥有的 private st
  • 将多个值从 MVC3 视图传递到 ActionMethod

    我想知道是否有人可以帮助我 我很抱歉听起来像个笨蛋 但我是 MVC3 的新手 我试图将 2 个值从视图传递到操作方法 但这并不公平 HTML Html ActionLink ASSIGN AssignTokenToDataTemplate
  • 我如何创建像 Altair 这样并排的条形图?

    我想要创造的图片 https i stack imgur com VZ0K3 png 我得到了图表的左侧 前三分之一 并尝试创建 bars2 和 text2 字段 但这不起作用 并将其添加到原始的ranked movies字段中 但这一切都
  • Groovy 方法从列表中获取随机元素

    Groovy 在管理集合方面非常强大 我有一个这样的列表 def nameList Jon Mike Alexia 我想做的是迭代 10 次 从第一个列表中获取 10 个人的随机名字 10 times Person person new P
  • 在 EKS 集群中挂载 EFS:示例部署失败

    我目前正在尝试创建一个 EFS 以在 EKS 集群中使用 我已遵循所有说明 并且大多数情况下一切似乎都正常 但是 当尝试应用 multiple pods 示例部署时here https github com kubernetes sigs
  • 如何在Java中的FlatBuffer中存储字典(地图)

    我正在从中学习平面缓冲区link https google github io flatbuffers flatbuffers guide tutorial html 没有例子演示如何存储字典 地图 这里提到了 Storing dictio
  • 测试与 docker 守护进程的连接

    我正在编写一个将自动启动 docker compose 的脚本 然而 有时 做eval docker machine env default 不会导致 docker 守护进程立即连接 并且当下一行到来时 docker compose up
  • *nix select 和 exceptfds/errorfds 语义

    The select http www opengroup org onlinepubs 007908775 xsh select html系统调用需要 3 个文件描述符集来监视 fd 的可读 可写和文件描述符上的 异常 我的选择man p