9.2 IO多路复用select函数

news2024/12/22 19:04:01

目录

I/O多路复用模型

 多路复用的实现方式

select函数

fd_set结构体


I/O多路复用模型

 多路复用的实现方式

select函数
int select(int nfds, fd_set *readfds, fd_set *writefds,
            fd_set *exceptfds, struct timeval *timeout);
 
poll函数
int poll(struct pollfd *fds, nfds_t nfds, int timeout);

epoll API
epoll_create
epoll_wait
epoll_ctl

select函数

select函数
int select(int nfds, fd_set *readfds, fd_set *writefds,
            fd_set *exceptfds, struct timeval *timeout);

//nfds: 是三个集合中编号最高的文件描述符,加上 1
//readfds/writefds/exceptfds: 
可读集合/可写集合/异常集合
//timeout:
NULL:永久阻塞
0:非阻塞模式

fd_set结构体

/*将文件描述符从集合中删除*/
void FD_CLR(int fd, fd_set *set); 

/*查看文件描述符是否存在于集合当中*/
int  FD_ISSET(int fd, fd_set *set);

/*添加文件描述符*/
void FD_SET(int fd, fd_set *set); 

/*初始化集合*/
void FD_ZERO(fd_set *set);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/699085.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Git 安装 配置初始化

1. Git 下载 1.1 git 官网下载 Git 官网 https://git-scm.com/download/win 根据自己的电脑系统下载对应的版本 1.2 百度网盘下载 百度网盘:https://pan.baidu.com/s/17Thcov7VKfIc_hINcQimrw 提取码:13142. 安装git 2.1 双击安装包 2.2 点击next …

新应用爆发,开启5G的鱼龙之变

鱼龙变化,是中国自古以来就有的吉祥寓意与美好期盼。早在商代出土的玉雕中,就出现了由鱼化为龙的形象。晋代民间的歌谣中,已经有了“东海大鱼化为龙”的说法。在此之后,“鱼跃龙门”成为了考试中第的代名词,也被引申为…

台灯选用什么类型好?分享好用的护眼台灯

建议是选择护眼台灯比较好一点,不管是大人还是孩子使用,都会比普通台灯护眼一些。主要是普通台灯在交流电状态下正常工作的时候,每秒钟会发生闪烁100次左右,这样的频率人眼是看不出来的。但是在台灯下时间一长,极其容易…

sonarqube安装指南

sonarQube安装的指导文章说起来有很多,其他步骤本文不再赘述,可以参考其他文章。 在这里讲一下对JDK版本的事情。 SonarQube Server对系统的JDK、和研发写代码所使用的JDK版本有要求,要求大版本统一,比如大家基本上都在用JDK8&a…

景联文科技高质量教育GPT题库:引领教育行业的技术革命

ChatGPT拉开了大语言题库和生成式AI产业蓬勃发展的序幕。全世界教育科技公司扎堆接入GPT-4,涵盖美国、欧洲、日韩、中东和北非地区等。大语言题库在教育领域中势必将获得更加广阔的应用前景和丰富的应用场景。 杭州景联文科技是AI基础数据行业的头部企业&#xff0c…

实用技巧之拼接

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于拼接的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.什么时候会用到拼接 二.使用什么方式进…

React V6实现父子组件双向绑定传值

功能背景 之前在写vue的时候用到一个很好用的东西,比如控制一个dialog的显示隐藏,那么可以由父组件控制它显示,子组件(即这个dialog)自己可以关闭自己,那么他们之间只维护一个visible的状态,就需…

预约时间列表 带标签 上午下午 今天明天

/*** 时间列表* $interval 间隔X分钟* */ function timeList($day7,$time108:00,$time222:00,$interval60){$date_list [];//日期列表$today_date strtotime(date(Y-m-d,time()));for($i0;$i<$day;$i){$date_title date(Y-m-d,$today_date($i*86400));$buff array();for…

win7下如何开启远程桌面服务?让别人连接的方法

当某台计算机开启了远程桌面连接功能后就可以在网络的另一端控制这台计算机了&#xff0c;通过远程桌面功能可以实时地操作这台计算机&#xff0c;在上面安装软件&#xff0c;运行程序&#xff0c;所有的一切都好像是直接在该计算机上操作一样。这就是远程桌面的最大功能&#…

基于Python所写的图片批量处理器设计

点击以下链接获取源码资源&#xff1a; https://download.csdn.net/download/qq_64505944/87964231 《图片批量处理器》程序使用说明 在PyCharm中运行《图片批量处理器》即可进入如图1所示的系统主界面。在该界面中&#xff0c;通过顶部的菜单栏可以选择所要进行的操作。 图…

2023上半年软考系统分析师科目一整理-06

2023上半年软考系统分析师科目一整理-06 在数据库设计的需求分析、概念结构设计、逻辑结构设计和物理结构设计的四个阶段中&#xff0c;基本E-R图是( D )。 A.需求分析阶段形成的文档&#xff0c;并作为概念结构设计阶段的设计依据 B.逻辑结构设计阶段形成的文档&#xff0c;…

python获取目标主机的MAC地址

下载插件&#xff1a;WinPcap Download 下载后直接安装&#xff08;虽然已停止更新&#xff0c;但还能正常使用&#xff09; python代码&#xff1a;安装 scapy 包 from scapy.all import Ether, ARP, srpdef get_mac_address(ip):# 创建一个ARP请求数据包arp Ether(dst"…

独家!同比增长超两倍,空气悬架前装市场「爆表」

接近20万套&#xff08;19.56万辆&#xff09;、同比增长超2倍&#xff08;222.88%&#xff09;&#xff0c;这是空气悬架系统在今年1-5月中国乘用车市场交出的答卷。同时&#xff0c;更多的供应商正在进入这个爆发式增长的细分市场。 高工智能汽车研究院监测数据显示&#xf…

第三方apple pencil哪个好?ipad第三方电容笔了解下

要知道&#xff0c;苹果原装的Pencil虽然性能很好&#xff0c;但是价格不菲&#xff0c;普通用户根本用不起。所以&#xff0c;是否有一种和Apple Pencil一样具有同样功能的电容笔吗&#xff1f;的确是这样。国内生产的平替电容笔跟苹果Pencil书写上并没有太大的区别&#xff0…

运行teb_local_planner/TebLocalPlannerROS时报错

在navigation时&#xff0c;运行pnc导航&#xff0c;报了Failed to create the teb_local_planner/TebLocalPlannerROS的错误。 解决办法&#xff1a; 在你的工作空间catkin_ws/src下进行teb源码安装 git clone https://github.com/rst-tu-dortmund/teb_local_planner完成后…

华为OD机试真题 Python 实现【数字加减游戏】【2023Q1 200分】,附详细解题思路

一、题目描述 小明在玩一个数字加减游戏&#xff0c;只使用加法或者减法&#xff0c;将一个数字s变成数字t。 每个回合&#xff0c;小明可以用当前的数字加上或减去一个数字。 现在有两种数字可以用来加减&#xff0c;分别为a&#xff0c;其中b没有使用次数限制。 请问小明…

vue-esign签字板,鼠标写名,支持PC\移动端,返回base64或者file格式的文件流vue vue-esign签字插件

开源地址: 示例DEMO vue里实现鼠标签名,支持PC\移动端,返回base64或者file格式的文件流 1 、安装插件 vue-esign npm install vue-esign --save2、在main.js引用 import vueEsign from vue-esign Vue.use(vueEsign)3、页面中使用 <template><div><el-card cla…

【有奖体验】这个 AI 智能回答,就一个字“绝”!

立即体验基于函数计算部署【文生文】一键部署 ChatYuan 模型&#xff1a; https://developer.aliyun.com/topic/aigc_fc 人工智能生成内容&#xff08;Artificial Intelligence Generated Content&#xff0c;简称 AIGC&#xff09;是当下最火的概念之一。AIGC 被认为是继专业…

iMazing 2.16官方下载使用起来安全吗?

鉴于苹果设备的封闭性与安全性&#xff0c;我们大部分情况下都需要搭配iTunes进行设备的管理。但作为一款全方位的iOS设备管理软件&#xff0c;iMazing竟然可以突破iTunes的限制&#xff0c;与设备直接连接&#xff0c;进行备份、管理等操作。 因此&#xff0c;很多人都会有疑…

Python中怎么清屏

文章目录 一、“Windows命令行窗口”下清屏二、在IDLE下清屏三、后记结语 一、“Windows命令行窗口”下清屏 “Windows命令行窗口”下清屏&#xff0c;可用下面两种方法&#xff1a; 第一种方法&#xff0c;在命令行窗口输入&#xff1a; import os ios.system("cls&qu…