我会写一个小测试,通过捕获任何中断信号向我展示epoll_Wait
和epoll_pwait()
之间的区别。任何人都可以通过一个小代码或任何方法来找到它吗?
int epoll_pwait(int epfd, struct epoll_event *events,
int maxevents, int timeout,
const sigset_t *sigmask);
答案 0 :(得分:2)
如果您正在寻找在epoll
事件循环中集成信号处理的方法,请查看signalfd(2)
man page。
它将为您提供一个fd,您可以将其添加到您的pollset中,以便在您的进程(或线程,如果与您的情况相关)收到信号时收到通知。
答案 1 :(得分:0)
epoll_pwait不会“捕获信号”,它允许您自动设置新的过程信号掩码,该信号仅在呼叫期间处于活动状态。请参阅手册页上的说明,例如http://linux.die.net/man/2/epoll_wait
你想要实现的目标是什么?如果您更具体,我可以为您提供更多信息。