C'est tout à fait correct de jeter ou de réutiliser immédiatement votre structure epoll_event.
Le noyau copiera les paramètres de la structure epoll_event.
C'est exactement la même chose que si vous utilisiez un ioctl qui prend une structure en paramètre, ou une opération de socket (par exemple bind) qui prend une structure sockaddr_in.
Le noyau prend ce dont il a besoin, et vous pouvez immédiatement le libérer.
La seule chose dont vous devez vous soucier, ce sont les "données utilisateur", qui ne vous concernent que. Le noyau le stockera, mais vous devez savoir ce que cela signifie lorsque vous obtenez un événement.
Tout va bien. Le epoll_ctl
La fonction est un simple wrapper autour d'un appel système qui sera entièrement terminé lorsque la fonction reviendra. Aucune autre donnée de l'espace utilisateur n'est requise. La structure est simplement un moyen de regrouper les arguments.