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成員指定了無效的檔案描述符。EFAULTufds引用了無法訪問的記憶體區域。EINTR呼叫被訊號中斷。
EINVALnfds值超過了RLIMIT_NOFILE值。使用getrlimit()獲取此值。