目录
select模型的实现基于select函数,poll模型的实现也是基于 poll函数,poll可以看作是select的升级版,在功能层面是一样的,都是只负责等待事件就绪,不参与拷贝过程。
一、认识 poll 函数
poll函数的作用是等待某些事件是否就绪,函数声明如下:

1、第三个参数 timeout
这个参数是一个输入型参数,单位是毫秒,代表阻塞等待的时间,超过该时间就会变为非阻塞等待。
- timeout = -1,代表永久阻塞等待
- timeout = 0,代表永久非阻塞等待
- timeout > 0,代表先阻塞等待 timeout 毫秒,超过这个时间变为非阻塞等待,poll函数返回
2、第一、第二个参数
为了记录哪些文件描述符需要被关注,我们一般会将这些文件描述符放到一个数组里。
- 第一个参数:这个数组的元素首地址,元素类型是pollfd 结构体类型
- 第二个参数:需要关注的文件描述符的数目。如果有多个文件描述符,我们可以通过这个参数来遍历数组中的文件描述符。
(1) 认识 pollfd 结构体类型
pollfd结构体包含了每一个需要内核关注的文件描述符的信息,比如这个文件描述符需要关注什么事件、有什么事件已经就绪了等等。pollfd 的结构体声明如下:

本文详细介绍了poll函数的工作原理,包括其参数配置、事件类型及返回值等,并通过实例展示了如何使用poll模型监听标准输入。
最低0.47元/天 解锁文章
1044

被折叠的 条评论
为什么被折叠?



