при использовании epoll_ctl () я обнаружил, что третий параметр «fd» является другим дескриптором файла помимо дескриптора файла epoll «epfd». И я видел такой пример:
event.data.fd = sfd; //sfd is a fd for listening
event.events = EPOLLIN | EPOLLET;
s = epoll_ctl (efd, EPOLL_CTL_ADD, sfd, &event);
Как я видел, дескриптор файла в event.data.fd такой же, как третий параметр в epoll_ctl, зачем нужно передавать этот дескриптор дважды? есть ли разница?