select/poll 函数
来源:互联网 发布:中电云集 mysql root 编辑:程序博客网 时间:2024/05/20 00:36
异步I/O,基本思想是进程告诉内核,当一个描述符已经准备好可以进行I/O时,用一个信号通知它。
实现异步I/O的一种较好的技术是I/O多路复用(I/O multiplexing)。先构造一张有关描述符的列表,然后调用一个函数,直到这些描述符中的一个已准备好进行I/O时,该函数返回。在返回时,它告诉进程哪些描述符已准备好可以进行I/O。
Select和Poll这两个函数就可以帮助我们实现I/O多路复用。
Select函数为:
#include <sys/select.h>int select(int maxfdp1, fd_set *restrict readfds,fd_set *restrict writefds, fd_set *restrict exceptfds,struct timeval *restrict tvpir);fd_set是一个为每一个描述符提供一个位的数据结构。在申请了一个fd_set描述符集后,需要用FD_ZERO清除所有位,如下:
fd_set rset;FD_ZERO(&rset);可以通过FD_SET根据一个fd来设置fd_set中与它相关的位,比如:
int fd;FD_SET(fd, &rset);函数中3个fd_set表示我们所关心的三类事件。
最后一个参数struct timeval *tvpir为select等待的时间。
在select返回时,用FD_ISSET测试fd_set中的一个给定位是否仍旧设置,如果某个给定位仍然设置,则可以在该fd上进行I/O操作或与异常相关的操作。
函数的第一个参数maxfdp1为“最大描述符+1”,在后面三个描述符集中找出最大描述符编号值然后加1就是第一个参数值。
应当注意的是,一个描述符阻塞与否并不影响select是否阻塞。
0 0
- select和poll函数
- select,pselect,poll函数
- select/poll 函数
- select,poll,epoll函数
- select()函数、poll()函数
- select()函数、poll()函数
- poll函数和select函数
- select和poll函数讲解
- select、poll、epoll函数介绍
- select函数/poll函数/epoll函数
- select()函数、poll()函数(转载)
- Linux select函数和poll函数
- select 和poll函数调用驱动的poll->poll_wait 理解
- select 和poll函数调用驱动的poll->poll_wait 理解
- select 和poll函数调用驱动的poll->poll_wait 理解
- I/O复用:Select和Poll函数
- I/O复用 select和poll函数
- 基于Python的select和poll函数
- “鬼影”浅析 - 反病毒,信息安全,网络安全,反木马,病毒资讯平台,安全解决方案,电脑使用技巧,杀毒软件交流,anti-virus,民间反病毒联盟
- android手机无法连电脑
- 踢好ERP项目的临门一脚 项目验收
- IOS 三种动画
- Ubuntu下安装QQ的方法
- select/poll 函数
- 如何判在PowerShell中判断字符串是空值还是无效Null值
- STL中vector使用笔记
- 数据库
- android 长按返回键处理
- Oracle操作小结
- HDFS追本溯源:租约,读写过程的容错处理及NN的主要数据结构
- 机器学习之AdaBoost元算法
- 核方法(kernel method)的主要思想