select多路IO复用
来源:互联网 发布:今年双十一淘宝成交额 编辑:程序博客网 时间:2024/06/16 17:39
主要使用的方法有三种:select、poll、epoll,这次介绍一下select。
select函数原形:
int select (int nfds, fd_set *readset, fd_set *writeset,
fd_set *exceptset, const struct timeval * timeout);
参数一:监控所有文件描述符集里最大文件描述符加1,因为此参数会告诉内核检测前多少个文件描述符的状态
参数二:监控有读数据到达文件描述符集合,传入传出参数
参数三:监控写数据到达文件描述符集合,传入传出参数
参数四:监控异常发生达文件描述符集合,如带外数据到达异常,传入传出参数
参数五:定时阻塞监控时间,一个指向timeval结构的指针,用于决定select等待I/o的最长时间。如果为空将一直等待。
timeval结构的定义:
struct timeval{
long tv_sec; // seconds(秒)
long tv_usec; // microseconds(微秒)
}
成功返回:所有监听集合中,满足条件的总数,也就是你监听的读、写、异常全部满足加起来的总数。
失败返回错误码
对文件集合的操作函数,fd_set(文件集合, 实现是一个位图)
void FD_CLR(int fd, fd_set *set); //把文件描述符集合里fd清0
int FD_ISSET(int fd, fd_set *set); //测试文件描述符集合里fd是否置1
void FD_SET(int fd, fd_set *set); //把文件描述符集合里fd位置置为1
void FD_ZERO(fd_set *set); //把文件描述符集合里所有位清0
select注意事项:select能监听的文件描述符个数受限于FD_SETSIZE,一般为1024,单纯改变进程打开的文件描述符个数并不能改变select监听文件个数。
- select多路IO复用
- select,epoll 多路IO复用
- select与epoll,多路IO复用
- io复用select pselect
- IO复用 select Demo
- IO复用:select函数
- IO复用:select函数
- IO复用select模型
- linux编程---IO复用---select
- php socket select IO复用
- 多路IO复用 select 和 poll 函数简介
- 多路IO复用模型 select epoll
- unix高级编程-多路IO select
- select多路IO复用服务器
- IO复用 select函数使用实例
- IO复用: select 和poll 到epoll
- select、poll、epoll三组IO复用
- IO复用,select、poll、epoll综述
- latex中插入表格
- 大数据:前端职位统计(20170601)
- Spring JDBC中枚举字段的使用
- jsp九大内置对象以及各自的作用域
- 使用 cURL 进行 HTTP 请求实例
- select多路IO复用
- 分类之性能评估
- c++学习笔记--一个简单的 try-catch-throw
- 《HBase权威指南》读书笔记:第二章 安装
- POJ 1291 This Sentence is False 笔记
- java Externalizable序列化接口
- 从数组里面获取随机数
- 低价购买
- HeapSpray原理演示