1. poll函数原型:
int poll(struct pollfd *fds, nfds_t nfds, int timeout);
参数:
- fds:指向一个结构体数组的第0个元素的指针,每个数组元素都是一个struct pollfd结构,用于指定测试某个给定的fd的条件
- nfds:表示fds结构体数组的长度
- timeout:表示poll函数的超时时间,单位是毫秒
函数功能:
- 监视并等待多个文件描述符的属性变化
函数返回值:
- 返回值小于0,表示出错
- 返回值等于0,表示poll函数等待超时
- 返回值大于0,表示poll由于监听的文件描述符就绪返回,并且返回结果就是就绪的文件描述符的个数。
2. pollfd结构体
struct pollfd
{
int fd; //文件描述符
short events; //要求查询的事件掩码
short revents; //返回的事件掩码
}
成员变量说明:
- fd:每一个 pollfd 结构体指定了一个被监视的文件描述符,可以传递多个结构体,指示 poll() 监视多个文件描述符。
- events:表示要告诉操作系统需要监测fd的事件(输入、输出、错误),每一个事件有多个取值
- revents:revents 域是文件描述符的操作结果事件,内核在调用返回时设置这个域。events 域中请求的任何事件都可能在 revents 域中返回
poll函数及pollfd结构体详解
博客介绍了poll函数,其原型包含fds、nfds、timeout三个参数,功能是监视并等待多个文件描述符属性变化,返回值有不同含义。还说明了pollfd结构体,其成员变量fd指定被监视文件描述符,events表示需监测的事件,revents是操作结果事件。
1180

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



