poll()函数功能:在指定时间内轮询一定数量的文件描述符,来测试其中是否有就绪者
poll的原型如下:
int poll(struct pollfd* fds, nfds_t nfds, int timeout);
其中各个参数的介绍如下:
1.fds——是一个pollfd结构类型的数组,它指定所有我们感兴趣的文件描述符上发生的可读,可写和异常等事件。pollfd结构体如下所示:
struct pollfd
{
int fd; //文件描述符
short events; //注册的事件
short revents; //实际发生的事件,由内核来修改
}
至于poll支持哪些事件类型,大家可自行搜索,此处不再介绍。
2.nfds——指定被监听事件集合fds的大小
3.timeout——指定poll的超时值,当timeout为-1时poll调用将永远阻塞,直至某个事件发生,而当timeout为0时,poll调用将立即返回。