Ответ 1
На странице man:
Q6 Закрытие дескриптора файла приведет к его удалению со всех наборов epoll автоматически?
A6 Да, но помните следующее. Дескриптор файла - это ссылку на описание открытого файла (см.
open
(2)). Всякий раз, когда дескриптор дублируется черезdup
(2),dup2
(2),fcntl
(2)F_DUPFD
, илиfork
(2), новый файловый дескриптор, ссылающийся на одно и то же открытое описание файла создано. Описание открытого файла продолжает существовать до тех пор, пока весь файл дескрипторы, ссылающиеся на него, были закрыты. Дескриптор файла удаляется изepoll
, установленного только после того, как все дескрипторы файла ссылаются на описание открытого файла было закрыто (или раньше, если дескриптор явно удаляется с помощьюepoll_ctl
(2)EPOLL_CTL_DEL
). Эта означает, что даже после того, как дескриптор файла, являющийся частью набораepoll
, имеет были закрыты, события могут сообщаться для этого файлового дескриптора, если другой файл дескрипторы, относящиеся к одному и тому же описанию файла, остаются открытыми.