select与poll函数介绍
2014-01-06 23:01
197 查看
select与poll函数介绍
在所有依从POSIX的平台上,select函数使我们可以执行I/O多路转接。传向select的参数告诉内核:
1)我们所关心的描述符
2)对于每个描述符我们所关心的状态(是否读一个给定的描述符?是否想写一个给定的描述符?是否关心一个描述符的异常状态?)
3)愿意等待多长时间(可以永远等待,也可以等待一个固定量时间,或完全不等待)
从select返回时,内核告诉我们:
1)已准备好的描述符的数量
2)对于读、写或异常这三个状态中的每一个,哪些描述符已准备好
使用这些返回信息,就可以调用相应的I/O函数(一般是read或write),并且确知该函数不会阻塞。
函数原型:
返回值:准备就绪的描述符数,若超时则返回0,若出错则返回-1
在所有依从POSIX的平台上,select函数使我们可以执行I/O多路转接。传向select的参数告诉内核:
1)我们所关心的描述符
2)对于每个描述符我们所关心的状态(是否读一个给定的描述符?是否想写一个给定的描述符?是否关心一个描述符的异常状态?)
3)愿意等待多长时间(可以永远等待,也可以等待一个固定量时间,或完全不等待)
从select返回时,内核告诉我们:
1)已准备好的描述符的数量
2)对于读、写或异常这三个状态中的每一个,哪些描述符已准备好
使用这些返回信息,就可以调用相应的I/O函数(一般是read或write),并且确知该函数不会阻塞。
函数原型:
#include <sys/select.h> int select(int maxfdp1, fd_set *restrict readfds, fd_set *restrict writefds, fd_set *restrict exceptfds, struct timeval *restrict tvptr);
返回值:准备就绪的描述符数,若超时则返回0,若出错则返回-1
相关文章推荐
- Select()函数的介绍
- select/poll源码分析——I/O复用函数总结(一)
- 详述socket编程之select()和poll()函数
- Unix 网络编程学习笔记--第6章 I/O 复用: select 和poll 函数
- linux网络编程之socket(十三):epoll 系列函数简介、与select、poll 的区别
- UNIX网络编程卷一 第六章 I/O复用 select 和 poll 函数
- UNP第六章 I/O复用:select和poll函数
- select、poll以及epoll三组I/O复用函数的区别
- 【Socket】详述socket编程之select()和poll()函数
- Linux I/O复用中select poll epoll模型的介绍及其优缺点的比较
- 驱动函数poll 和 应用里的 select
- zmq中zmq_poll()函数介绍
- 异步函数poll的使用及与select的区别
- UNIX网络编程——I/O复用:select和poll函数
- select()函数、poll()函数
- 第六章 IO复用:select和poll函数
- do_select()函数分析,理解select(),poll(),poll_wait()函数的关系
- UNIX网络编程——I/O复用:select和poll函数
- IO复用之select poll epoll 函数
- linux网络编程之socket(十三):epoll 系列函数简介、与select、poll 的区别