5.12. request poll()

5.12.1. 名称

request-poll - 等待文件描述符上的某些事件

5.12.2. 概要

#include <sys/poll.h>
int poll(struct pollfd *ufds, unsigned int nfds, int timeout)

5.12.3. 参数

ufds

要监视的文件描述符事件列表

nfds

*ufds 数组中文件描述符事件的数量

timeout

等待事件的超时时间

5.12.4. 描述

使用 poll() 函数,应用程序可以等待请求完成。

成功时,poll() 返回已选择的文件描述符数量(即,pollfd 结构的各自 revents 字段非零的文件描述符)。请求文件描述符在请求完成时在 revents 中设置 POLLPRI 标志。当函数超时时,它返回零值,失败时返回 -1,并适当地设置 errno 变量。

尝试轮询尚未排队的请求将在 revents 中设置 POLLERR 标志。

5.12.5. 返回值

成功时,poll() 返回具有非零 revents 字段的结构数量,如果调用超时则返回零。出错时,返回 -1,并适当地设置 errno 变量

EBADF

一个或多个 ufds 成员指定了无效的文件描述符。

EFAULT

ufds 引用了无法访问的内存区域。

EINTR

该调用被信号中断。

EINVAL

nfds 值超过 RLIMIT_NOFILE 值。使用 getrlimit() 获取此值。