#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>
int select(int nfds,fd_set *readfds,fd_set *writefds,fd_set *exceptfds,struct timeval *timeout);
参数:
1.nfds
所有监控的文件描述符中最大的那一个加1
2.readfds:读集合
所监听的文件描述符可读事件
3.writefds:写集合
所监听的文件描述符可写事件
4.exceptfds:异常集合
所监听的文件描述符异常事件
5.timeout:超时
–超时设置.
–Null:一直阻塞,直到有文件描述符就绪或出错
–时间值为0:仅仅检测文件描述符集的状态,然后立即返回
–时间值不为0:在指定时间内,如果没有事件发生,则超时返回
struct timeval
{
long tv_sec;//秒
long tv_usec;//微秒
}
返回值:
成功:所监听的所有的 监听集合中,满足条件的总数
失败:0
注:select退出后:集合表示有数据的集合