2.4. cec poll()

2.4.1. 名称

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

2.4.2. 概要

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

2.4.3. 参数

ufds

要监视的 FD 事件列表

nfds

*ufds 数组中 FD 事件的数量

timeout

等待事件的超时时间

2.4.4. 描述

通过 poll() 函数,应用程序可以等待 CEC 事件。

成功时,poll() 返回已选择的文件描述符的数量(即,其相应的 struct pollfdrevents 字段为非零的文件描述符)。如果接收队列中有消息,CEC 设备会在 revents 字段中设置 POLLINPOLLRDNORM 标志。如果传输队列有空间用于新消息,则会设置 POLLOUTPOLLWRNORM 标志。如果事件队列中有事件,则会设置 POLLPRI 标志。当函数超时时,它返回零值,失败时返回 -1,并且 errno 变量会相应地设置。

有关更多详细信息,请参阅 poll() 手册页。

2.4.5. 返回值

成功时,poll() 返回具有非零 revents 字段的结构数量,如果调用超时,则返回零。发生错误时,返回 -1,并且 errno 变量会相应地设置

EBADF

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

EFAULT

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

EINTR

调用被信号中断。

EINVAL

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