是否可以防止信号凝结?

时间:2015-05-23 10:15:56

标签: c++ linux unix signals

在Linux上的C ++中,根据我的理解,如果多次传递相同的信号,信号处理程序可能只被调用一次。是否可以覆盖此行为?例如,假设我有几个文件描述符,并且只要有这些文件描述符上的事件,我希望SIGIO收到通知。所以我在fcntl上使用F_SETOWN_EX命令调用epoll。但是如果在2个文件描述符上有同时发生的事件,我可能只得到一个SIGIO,然后再也不知道在另一个文件描述符上发生了一个事件。

现在我知道你可能想知道我为什么要使用信号,而不是jusgt clock_gettime或其他东西。问题是我对事件发生的确切时间感兴趣,所以我想从SIGIO信号处理程序调用{​​{1}}来记录事件的确切时间。

1 个答案:

答案 0 :(得分:0)

老问题,但万一有人仍然想知道:你应该能够通过fcntl使用F_SETSIG选择实时信号(信号编号> = {)来完成你想要的工作。 {1}}),而不是使用默认的SIGRTMIN