IO復用 poll函式

2021-10-17 14:08:32 字數 1210 閱讀 5265

東陽的學習筆記

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的條件。...