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() 返回已選擇的檔案描述符的數量(即,struct 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() 獲取此值。