東陽的學習筆記poll提供的功能和 select 類似,不過在處理
流裝置
時,它能提供額外的資訊。
#include
intpoll
(struct pollfd *fdarray,
unsigned
long nfds,
int timeout)
;
第乙個引數時指向乙個結構陣列第乙個元素的指標。每個陣列元素都是乙個pollfd結構,用於指定測試某個給定描述符fd的條件。
struct pollfd
要測試的條件由 events 成員指定,函式在相應的revents
成員中返回描述的狀態。這兩個成員中的每乙個都由指定某個特定條件的一位或多位構成。
常量說明
pollin
普通或優先順序帶資料可讀
pollrdnorm
普通資料可讀
pollrdband
優先順序帶資料可讀
pollpri
高優先順序資料可讀
pollout
普通資料可寫
pollwrnorm
普通資料可寫
pollwrband
優先順序帶資料可寫
pollerr
發生錯誤
pollhup
發生掛起
pollnval
描述字不是乙個開啟的檔案
就tcp和udp套接字而言,以下條件引起poll返回特定的revent
。不幸的是,posix在其poll的定義中留了許多空洞(也就是說有多種方法可返回相同的條件)。
當發生錯誤
時,poll函式的返回值為-1,若定時器到時之前沒有任何描述符就緒,則返回0,否則返回就緒描述符的個數,即revents成員值非0描述值的個數
如果我們不再關心某個特定描述符,那麼可以把與它對應的pollfd結構的fd成員
設定成乙個負值
。poll函式將忽略
這樣的 pollfd 結構的 events 成員,返回時將它的revents
成員置為0。
IO復用 poll函式
poll提供的功能與select函式類似,不過在處理流裝置時,它能夠提供額外的資訊 include int poll struct pollfd fdarray,unsigned long nfds,int timeout 返回 若有就緒的描述符則為其數目,若超時則為0,若出錯則為 1 第乙個引數是...
I O 復用之 poll 函式
poll 函式提供的功能與 select 類似,不過在處理流裝置時,它能提供額外的資訊。include int poll struct pollfd fdarray,unsigned long nfds,int timeout 返回值 若有就緒描述符則為其數目,若超時則為 0,若出錯則為 1 str...
IO復用之poll函式介紹
函式原型 include intpoll struct pollfd fds,nfds t nfds,int timeout 函式功能 等待乙個檔案描述符轉變為就緒狀態 引數1 第乙個引數是指向乙個結構陣列第乙個元素的指標。每個陣列元素都是乙個pollfd結構,用於指定測試某個給定描述符fd的條件。...