2017-10-05 8 views
0

epoll_wait()の2番目のパラメーターは、size = sizeof(struct epoll_event)*呼び出し元が予期している(ファイル記述子)総数イベントのバッファーです。このバッファは、最初にepoll_wait()に渡す前に常に0に初期化されます。次のコードスニペットepoll_wait()eventsバッファーリセット

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

No.

コードでのバグを修正する方がずっと良い方法です。 resultからepoll_waitまではブール値ではありません。これは、指定されたバッファリストに何個のバッファが書き込まれたかを指定する整数です。

これらの情報だけを確実に読んでも、バッファをゼロにする必要はありません。