从初识Linux到离不开系列(五)踏阶而上
来源:互联网 发布:无锡网络推广技巧 编辑:程序博客网 时间:2024/06/09 19:19
I/O复用_浅谈
I/O复用目录
- I/O模型
- select函数
- shutdown函数
- pselect函数
- poll函数
I/O模型
Unix的5种I/O模型
阻塞式I/O
非阻塞式I/O
I/O复用
信号驱动式I/O(SIGIO)
异步I/O(POSIX aio_系列函数)
前四种模型都是同步I/O,真正的I/O操作——recvfrom将进程阻塞。
select函数
select函数定义和使用方法
select(),确定一个或多个套接口的状态,本函数用于确定一个或多个套接口的状态,对每一个套接口,调用者可查询它的可读性、可写性及错误状态信息,用fd_set结构来表示一组等待检查的套接口,在调用返回时,这个结构存有满足一定条件的套接口组的子集,并且select()返回满足条件的套接口的数目。——出自百度百科(维基百科加载不出来)
select函数在 sys/select.h 中有相关定义
shutdown函数
- shutdown与close区别
- close限制
- 描述符的引用计数减1
- 终止读和写两个方向
- shutdown
- 避免close的限制
pselect函数
pselec()用来等待文件描述词状态的改变,和select()类似,它增加了超时值的精度,并且可以在等待文件描述符“准备好”的同时指定一组信号掩码。
定义在 sys/select.h
int pselect(int maxfdp1,fd_set *readfds,fd_set *writefds,fd_set *exceptfds,const struct timespec *tsptr,const sigset_t *sigmask);
返回值:准备就绪的描述符数,若超时则返回0,若出错则返回-1
poll函数
poll,Linux中的字符设备驱动中有一个函数,Linux 2.5.44版本后被epoll取代。
一说起这个设备驱动,就仿佛打了鸡血一样!!!
此函数在系统调用select内部被使用,作用是把当前的文件指针挂到设备内部定义的等待
功能和select差不多,因为起初是在处理流设备,所以实现起来看着就很亲切。
poll()接受一个指向结构’struct pollfd’列表的指针,其中包括了你想测试的文件描述符和事件。
struct pollfd {
int fd; /文件描述符/
short events; /* 等待的需要测试事件 */
short revents; /* 实际发生了的事件,也就是返回结果 */
};
虽然没写多少内容,但是真的是用了很多时间来看,只能说这个理解能力和实践结合的不够完美。
0 0
- 从初识Linux到离不开系列(五)踏阶而上
- 从初识Linux到离不开系列(三)悠然而生
- 从初识Linux到离不开系列(一)知难而进
- 从初识Linux到离不开系列(二)理由
- 从初识Linux到离不开系列(四)循序渐进
- 从初识Linux到离不开系列(六)辅助至上
- 从初识Linux到离不开系列(七)核心——传输
- 从初识Linux到离不开系列(末)进程间通信
- 从社群到粉丝,生活离不开它们的变化
- ActiveMQ从初识到使用(一)
- Linux系列-初识linux
- Java技术本纪(系列专题2--J2EE五年: 从起源到目的)
- 【原创】Selenium学习系列之(五)—从Selenium 到 Selenium2(Webdriver)
- Windows 2008从入门到精通系列教程(五)
- Mongodb从0到1系列五: 主从复制
- 为什么我离不开 Linux?
- .Net Discovery 系列之一--string从入门到精通(上)
- JavaScript从入门到放弃(五)
- Linux下编写线程池
- ThinkPHP框架总结之配置及使用
- 第三方图片加载框架对比分析
- 骑行川藏装备及开销整理
- 2.18模拟赛总结
- 从初识Linux到离不开系列(五)踏阶而上
- U盘启动制作 + xp镜像
- MVC_Ajax_2
- JDBC连接池、监控组件 Druid
- cc.Class.extend 不写ctor函数的后果
- 算法竞赛入门经典 蛇形填数
- iOS中的图中怎么计算两点间的距离
- 编程逻辑:按图索骥
- 【POJ 3592】 Instantaneous Transference(强连通缩点+最长路)