如何中断epoll_pwait来捕获信号

时间:2013-12-18 08:47:26

标签: c++ c linux sockets epoll

我会写一个小测试,通过捕获任何中断信号向我展示epoll_Waitepoll_pwait()之间的区别。任何人都可以通过一个小代码或任何方法来找到它吗?

int epoll_pwait(int epfd, struct epoll_event *events,
                  int maxevents, int timeout,
                  const sigset_t *sigmask);

2 个答案:

答案 0 :(得分:2)

如果您正在寻找在epoll事件循环中集成信号处理的方法,请查看signalfd(2) man page

它将为您提供一个fd,您可以将其添加到您的pollset中,以便在您的进程(或线程,如果与您的情况相关)收到信号时收到通知。

答案 1 :(得分:0)

epoll_pwait不会“捕获信号”,它允许您自动设置新的过程信号掩码,该信号仅在呼叫期间处于活动状态。请参阅手册页上的说明,例如http://linux.die.net/man/2/epoll_wait

你想要实现的目标是什么?如果您更具体,我可以为您提供更多信息。