2017-10-05 3 views
0

Le deuxième paramètre de epoll_wait() est un tampon de taille = sizeof (struct epoll_event) * nombre total d'événements (descripteur de fichier) appelant attend (ou surveillance). Ce tampon est toujours initialisé à zéro avant de passer à epoll_wait() pour la première fois.epoll_wait() événements réinitialisation du tampon

Pour le code suivant snippet

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) 

est-il bon pour réinitialiser événements tampon après le traitement des événements tous les retours epoll_wait() temps?

Répondre

0

n °

Une approche beaucoup mieux est de corriger le bug que vous avez dans le code. result de epoll_wait n'est pas un booléen. C'est un entier spécifiant combien de tampons ont été remplis dans la liste des tampons fournis.

Si vous vous assurez de ne lire que ceux-là, vous n'aurez pas du tout besoin d'initialiser les tampons.