UNIX核心编程:select函数详解
"函数简介select-UNIX核心编程" 在UNIX核心编程中,`select`函数是一个重要的I/O多路复用机制,它允许程序同时监视多个文件描述符(通常是套接字),等待至少有一个描述符准备好读、写或者有异常情况。`select`函数的基本语法如下: ```c int select(int numfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); ``` - `numfds`: 这是所有要监视的文件描述符中的最大值加1,表示`fd_set`的范围。 - `readfds`: 一个文件描述符集合,用于指定要监视的可读文件描述符。如果某个描述符在调用`select`后变为可读,它将被`select`设置为非零。 - `writefds`: 类似地,这是一个文件描述符集合,用于监视可写的文件描述符。 - `exceptfds`: 监视异常事件的文件描述符集合。 - `timeout`: 一个指向`struct timeval`结构体的指针,用于设定超时时间。如果`timeout`的值为NULL,`select`会一直阻塞,直到有描述符就绪。如果`timeout`的时间已经过去,`select`会返回0。 `select`函数的返回值是就绪的文件描述符集合中描述符的数量。这意味着程序可以处理这些就绪的事件,而不是无休止地等待。 在 UNIX/Linux 操作系统的历史中,`select`函数是最早的多路复用I/O机制之一,虽然现在有了更现代的替代品,如`poll`和`epoll`,但在某些简单或低负载的场景下,`select`仍然是一个有效的选择。 UNIX操作系统起源于1971年,由贝尔实验室的肯·汤普逊、丹尼斯·里奇和道格拉斯·麦伊利亚斯·里奇开发。它以其多用户、多任务特性著称,并且支持多种硬件架构。随着时间的发展,UNIX演变成三个主要的派别:System V、Berkeley和Hybrid。System V派系包括AIX、Solaris、HP-UX和IRIX等商业UNIX版本。Berkeley派系则产生了FreeBSD、NetBSD和OpenBSD等开源操作系统,以及Apple的MacOS X,其Darwin核心基于FreeBSD。最后,Hybrid派系中包括Minix和Linux,后者是一个广泛使用的类UNIX操作系统,内核由林纳斯·托瓦兹创建,现在已广泛应用于各种设备,从个人电脑到超级计算机。Linux的开放源码和自由许可证使得它成为开发者和企业的重要选择。
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/1615812800c64fd68f38b94a4642693f_weixin_42202078.jpg!1)
- 粉丝: 25
- 资源: 2万+
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- 贵州煤矿矿井水分类与处理策略:悬浮物、酸性与非酸性
- 醛固酮增多症肾上腺静脉采样对比:ACTH后LR-CAV的最优评估
- 开源云连接传感器监控平台:农业土壤湿度远程监测
- 母婴用品企业年度生产计划线性规划优化模型:实证与应用
- 井下智能变电站:Rogowski线圈电流检测系统的研发与性能验证
- 霍州矿区煤巷稳定性分析及支护策略
- ARM嵌入式系统远程软件更新方案:基于TFTP协议
- 煤炭选煤中汞分布规律与洗选脱汞效果
- 提升码垛机器人性能:拉格朗日动力学模型与滑模模糊控制的应用
- 增强现实技术提升学前手写教学:设计与开发案例
- 不规则工作面沉陷三角剖分算法提升与应用
- 卡尔曼滤波在瞬变电磁干扰压制中的应用研究
- 煤矿安全能力研究:理论与系统构建
- LonWorks总线技术在斜巷运输车辆定位与跑车防护中的应用
- 神东煤炭集团高效煤粉锅炉系统:节能环保新实践
- Ti/SnO2+Sb2Ox/PbO2电极分形维数与电催化性能研究
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)