1.poll模型屬於i/o多路轉接模型,是對select模型的一種優化;
int poll(struct pollfd *fds,nfd_t nfds,int timeout);2.poll的優點:
①poll使用陣列儲存檔案描述符,所以能描述的檔案描述個數在理論上沒有上限;3.poll的缺點:②poll將輸入輸出型引數進行了分離,因此使用時不需要重新設定;
③不要求計算最大檔案描述符加1的值,處理大數目檔案描述符時比select的速度快;
①poll是系統呼叫,每次都要將檔案描述符數字組從使用者態拷貝到核心態,開銷很大;4.實現乙個poll伺服器,監控輸入:②雖然poll在理論上對描述的檔案描述個數沒有上限,但每次呼叫poll,都要遍歷所有的檔案描述符,當數量很多時,開銷很大,會降低效能和效率;
#include
#include
int main()} }
}}
return
0;}
結果如圖所示:
Linux I O多路轉接poll
不同與select使用三個點陣圖來表示三個fdset的方式,poll使用 乙個 pollfd的指標實現。poll函式和select函式的任務相似 等待一組檔案描述符來準備執行i 0。引數 1 第乙個引數 fds struct pollfd 2 第二個引數 nfds nfds用來表示要監視檔案描述符的...
Linux I O多路轉接poll技術
上篇部落格i o多路轉接select技術筆者已經為大家詳細介紹了select函式的使用方式以及特點。我們在文章最後總結的時候我們提到,select雖然已經很大程度上解決了i o過程中等待的問題,但是由於函式本身介面設計的不友好 能夠檢測的檔案描述符有上限,以及函式多次迴圈遍歷的效率問題導致selec...
Linux I O多路轉接select
系統提供select函式來實現多路復用輸入 輸出模型,那為什麼提供select函式?首先要知道乙個概念,一次i o分兩個部分 等待資料就緒 進行i o 減少等待資料的的比重,增加i o的比重就可以達到高效伺服器的目的。select工作原理就是減少等的比重,同時監控多個檔案描述符 或者說檔案控制代碼 ...