从初识Linux到离不开系列(五)踏阶而上
2016-02-18 21:33
218 查看
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; /* 实际发生了的事件,也就是返回结果 */
};
虽然没写多少内容,但是真的是用了很多时间来看,只能说这个理解能力和实践结合的不够完美。
相关文章推荐
- Linux用户组、用户基础概念及常用命令(CentOS)
- Linux下Makefile文件编写
- CentOS, 高速设置ssh无password登录
- C/C++ 判断文件夹是否存在以及创建、删除文件夹 windows以及linux通用
- Linux笔记(4)——命令基本格式与文件处理命令
- VM 中Centos7 增加/目录容量
- 20160218自学Linux_根文件目录介绍+目录管理命令学习(mkdir,rmdir,tree,touch,stat,rm,nano,cp,mv,insatll)
- 《linux优化之需要开机启动的重点服务详解》
- linux系统管理及配置
- linux进程间通信学习
- 《Linxu优化之selinux详解以及运行级别详解》
- LINUX一网卡多IP设置
- CentOS7常用设置
- CentOS6.5安装zabbix监控及汉化
- lwn拾遗:[sn3218 led driver]-api解释-2
- C/C++ 基本数据类型之间的相互转换 int / char / string / vector windows与linux通用
- lwn拾遗:[sn3218 led drivers]-api解释-1
- linux创建账户并自动生成主目录和主目录下的文件
- 【Linux】ldd命令
- linux常用命令1--文件处理命令