如果epoll_event.events
字段的位为零,是否禁用事件?kqueue
有EV_DISABLE
,即
EV_DISABLE禁用该事件,以便kevent()不会返回它。
过滤器本身不会被禁用。
epoll_event ev;
ev.data.fd = 0; /* stdin file descriptor */
ev.events = EPOLLIN;
epoll_ctl(epollfd, EPOLL_CTL_ADD, evfd, &ev);
ev.events = 0;
epoll_ctl(epollfd, EPOLL_CTL_MOD, evfd, &ev);
那么,上述情况是否使stdout
事件不报告给epoll_wait
?
1条答案
按热度按时间1tu0hz3e1#
不,0 events字段不会禁止检查事件的相关文件描述符。特别是
EPOLLHUP
,即使没有明确要求,也会返回。您必须从epoll兴趣列表中删除描述符,并在要恢复监视它时重新添加它。