第五章第二节 poll系统调用
文章目录
poll系统调用与select系统调用类似,也是在指定时间内轮询一定数量的文件描述符,以测试其中是否有就绪者。
1 | /* |
其中,pollfd结构体的定义如下。
1 | struct pollfd{ |
其中,fd指定文件描述符,events成员告知poll需要监听fd上哪些事件,它是一系列事件的按位或。
revents成员由内核修改,以通知应用程序fd上实际发生了哪些事件。
自Linux2.6.17内核之后,GNU为poll系统调用增加了一个POLLRDHUP事件,它在socket接收到对方关闭连接的请求后触发,从而区分socket上接收到的数据是有效数据还是对方关闭连接的请求。使用POLLRDHUP事件需要在代码最开始处#define _GNU_SOURCE
。