c - 什么是文件描述符的 "exception"?

标签 c unix io file-descriptor multiplexing

当调用 select() 询问哪些文件描述符有“异常”等待时,这是什么意思?

如何触发这些“异常”之一?

如果有人能给我指出一个很好的解释,那就太棒了。我一直在谷歌搜索,但找不到任何东西。

最佳答案

简短形式:当 TCP 套接字接收到带外数据时会出现异常情况。

如果您阅读选择 manual page ,您会找到对另一个名为 select_tut 的补充手册页的引用,其中包含解释:

exceptfds

This set is watched for "exceptional conditions". In practice, only one such exceptional condition is common: the availability of out-of-band (OOB) data for reading from a TCP socket. See recv(2), send(2), and tcp(7) for more details about OOB data. (One other less common case where select(2) indicates an exceptional condition occurs with pseudo-terminals in packet mode; see tty_ioctl(4).) After select() has returned, exceptfds will be cleared of all file descriptors except for those for which an exceptional condition has occurred.

关于c - 什么是文件描述符的 "exception"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15714602/

相关文章:

c++ - 在类和类的标题中重载 << 运算符时遇到问题

c++ - cin/cout 协议(protocol)的单元测试 - 如何阻止流等待内容?

java - 将日志尾部通过管道传输到脚本如何导致生成日志的进程停止生成条目?

c - vfork() 隐式声明

c - 在C中的链表的末尾插入节点

c - 从 BST 返回当前节点

c - 信号处理程序中奇怪的 sleep 行为

c - 是否有任何 c 编译器实现了任何 C1X 功能?

sorting - 如何排序忽略空行

linux - 使用文件计数列出文件夹的 UNIX 命令