Вопросы об epoll и структуре данных - PullRequest
0 голосов
/ 08 декабря 2018

Будет ли fd, возвращаемый в событии epoll event.data.fd, всегда оставаться одним и тем же дескриптором fd каждый раз, когда используется epoll_wait (), и может ли он использоваться для идентификации этого соединения каждый раз и состояния, связанного с ним.

1 Ответ

0 голосов
/ 08 декабря 2018

Документация объясняет это довольно четко:

Поле данных каждой возвращаемой структуры содержит те же данные, которые были указаны при последнем вызове epoll_ctl (2) (EPOLL_CTL_ADD,EPOLL_CTL_MOD) для описания соответствующего открытого файла.

Таким образом, возвращаемое значение event.data.fd будет любым значением, которое вы указали для event.data.fd в последнем вызове epoll_ctl для этого описания открытого файла.Если вы не возитесь с fork или dup и не используете epoll в обоих дескрипторах, это будет последним вызовом epoll_ctl для этого файлового дескриптора.

...