poll函数
poll提供的功能与select类似,不过在处理流设备时,它能提供额外的信息。poll函数的设计实现是基于 结构体数组;select函数的设计实现是基于 描述符集。参数:
1. fdarray:指向一个结构体数组的第一个元素的指针。每个数组元素都是一个pollfd结构,用于指定测试某个给定描述符fd的条件。
fd:被检查的描述符;events:测试条件(作为调用值);revents:描述符的返回状态(返回结果)
poll识别三类数据:普通、优先级带和高级优先级带。
2. nfds:指定结构数组中元素的个数
3. timeout:指定poll函数返回前等待多长时间。它是一个指定赢等待毫秒数的正值。
返回值
1.当发生错误时,poll函数的返回值为-1;
2.若定时器到时之前没有任何描述符就绪,则返回0,否则返回就绪描述符的个数,即revents成员值非0的描述符个数。
如果我们不再关心某个特定描述符,那么可以把它对应的pollfd结构的fd成员设置成一个负值。poll函数将会忽略这样的pollfd结构的events成员,返回时将它们的revents成员的值设置为0.