select函数详细用法解析
2017年10月07日 ⁄ 综合 ⁄ 共 3468字 ⁄ 字号 小 中 大 ⁄ 评论关闭
本文转载至:http://blog.chinaunix.net/uid-21411227-id-1826874.html
1.表头文件
#include<sys/time.h>
#include<sys/types.h>
#include<unistd.h>
2.函数原型
int select(int n,fd_set * readfds,fd_set * writefds,fd_set * exceptfds,struct timeval * timeout);
3.函数说明
select()用来等待文件描述词状态的改变。参数n代表最大的文件描述词加1,参数readfds、writefds和exceptfds称为描述词组,是用来回传该描述词的读,写或例外的状况。底下的宏提供了处理这三种描述词组的方式:
FD_CLR(inr fd,fd_set* set);用来清除描述词组set中相关fd的位
FD_ISSET(int fd,fd_set *set);用来测试描述词组set中相关fd的位是否为真
FD_SET(int fd,fd_set*set);用来设置描述词组set中相关fd的位
FD_ZERO(fd_set *set);用来清除描述词组set的全部位
4.结构体说明
先说明两个结构体:
- struct fd_set可以理解为一个集合,这个集合中存放的是文件描述符(filedescriptor),即文件句柄,这可以是我们所说的普通意义的文件,当然Uni