Документация объясняет это довольно четко:
Поле данных каждой возвращаемой структуры содержит те же данные, которые были указаны при последнем вызове epoll_ctl
(2) (EPOLL_CTL_ADD
,EPOLL_CTL_MOD
) для описания соответствующего открытого файла.
Таким образом, возвращаемое значение event.data.fd
будет любым значением, которое вы указали для event.data.fd
в последнем вызове epoll_ctl
для этого описания открытого файла.Если вы не возитесь с fork
или dup
и не используете epoll
в обоих дескрипторах, это будет последним вызовом epoll_ctl
для этого файлового дескриптора.