函式原型:int epoll_wait( int epfd, struct epoll_event * events, int maxevents, int timeout );
epfd:epoll專用的檔案描述符
events:分配好的 epoll_event 結構體陣列
maxevents:maxevents表示本次可以回傳的最大事件數目
timeout:超時時間,單位為毫秒
回傳值:成功:回傳滿足監聽條件的事件數目,如回傳 0 表示已超時
沒有搞清楚epoll_wait()到底是在什么情況下回傳呢,如果是在一有其監測到的事件準備就緒就回傳的話,除了多個事件同時就緒的情況,是不是一般情況下都應該回傳1呢?那maxevents引數的作用是什么呢?
除了多個事件同時準備就緒還有其他情況會回傳大于1的值嗎?
uj5u.com熱心網友回復:
epoll_wait()每次會把每次獲取到的觸發事件都放到events這個events陣列里,而maxevents就代表這個陣列的最大容量,所以也就是每次epoll能獲取到的最大事件數量。epoll_wait()的回傳值是本次獲取到的實際事件數量,也就是本次要處理的事件數量。
epoll_wait()到底什么情況下回傳這個跟事件觸發模式有關,有ET和LT兩種模式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/116184.html
標籤:專題技術討論區
下一篇:centos創建用戶,設定組
