2017-10-05 149 views
0

epoll_wait()的第二個參數是size = sizeof(struct epoll_event)*調用程序期望(或監視)的總數事件(文件描述符)的緩衝區。在首次傳遞給epoll_wait()之前,此緩衝區始終初始化爲零。epoll_wait()事件緩衝區重置

對於下面的代碼片段

memset(&events[0], 0, maxEvents * sizeof (struct epoll_event)) 
do 
{ 
    result = epoll_wait(epoll_fd, &events[0], maxEvents, timeout) 
    if (result) 
    { 
     //process events 
    } 
} while (1) 

它的好處是處理的事件,每次epoll_wait()返回後重置事件緩衝區?

回答

0

更好的方法是修復代碼中的錯誤。 result from epoll_wait不是一個布爾值。它是一個integere,指定在提供的緩衝區列表中填充了多少個緩衝區。

如果您確保只讀取這些數據,則根本不需要初始化緩衝區。