Va assolutamente bene buttare via o riutilizzare immediatamente la tua struttura epoll_event.
Il kernel copierà i parametri dalla struttura epoll_event.
Questo è esattamente come se usassi un ioctl che accetta una struct come parametro, o un'operazione socket (ad es. bind) che accetta una struct sockaddr_in.
Il kernel prende ciò di cui ha bisogno e puoi liberarlo immediatamente.
L'unica cosa di cui devi preoccuparti sono i "dati utente", che sono rilevanti solo per te. Il kernel lo memorizzerà, ma devi sapere cosa significa quando ricevi un evento.
Va tutto bene. Il epoll_ctl
function è un semplice wrapper attorno a una chiamata di sistema che sarà completamente completa quando la funzione ritorna. Non sono richiesti ulteriori dati dallo spazio utente. La struttura è semplicemente un modo per impacchettare gli argomenti.