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 pollfd 的相應 revents 欄位為非零的檔案描述符)。如果接收佇列中有訊息,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() 來獲取此值。