在使用 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);
据我所知,epoll中event.data.fd中的文件描述符与epoll_ctl的第三个参数是相同的,为什么需要将这个描述符传递两次?是否有区别?