定义函数 int select(int n,fd_set * readfds,fd_set * writefds,fd_set * exceptfds,struct timeval * timeout);
n:该参数值为需要监视的文件的文件描述符的最大值加1
readfds:由select()监视的读文件描述符集合
writefds:由select()监视的写文件描述符集合
exceptfds:由select()监视的异常处理文件描述符集合
timeout:NULL 永远等待,直到捕捉到信号或文件描述符已准备好为止
具体值:sruct timeval类型的指针,若等待了timeout时间还没有检测到任何文件描述符准备好,就立即返回
0 从不等待,测试所有指定的描述符并立即返回
函数返回值:
大于0:成功,返回准备好的文件描述符的数目
0 超时 -1 出错
FD_CLR(inr fd,fd_set* set);用来清除描述词组set中相关fd 的位
FD_SET(int fd,fd_set*set);用来设置描述词组set中相关fd的位
FD_ZERO(fd_set *set);用来清除描述词组set的全部位
FD_ISSET(int fd,fd_set *set);如果文件描述符fd为fd_set集中的一个元素,则返回非零值,可以用于调用select()之后测试文
件描述符集中的文件描述符有否有变化。
struct timeval{
long tv_sec;//秒
long tv_unsec;/微秒
};