有可能防止信号凝结吗?
Is it possible to prevent signal condensation?
在Linux上的c++中,据我所知,如果多次传递相同的信号,则可能只调用一次信号处理程序。是否有可能重写此行为?例如,假设我有几个文件描述符,并且每当这些文件描述符上发生事件时,我都希望得到SIGIO的通知。所以我用F_SETOWN_EX
命令来调用fcntl
。但是,如果在两个文件描述符上同时发生事件,我可能只得到一个SIGIO,然后永远不会知道在另一个文件描述符上发生了事件。
现在我知道你可能想知道为什么我要使用信号,而不仅仅是epoll
或其他东西。事情是我对事件发生的确切时间感兴趣,所以我正在考虑从SIGIO信号处理程序调用clock_gettime
来记录事件的确切时间。
老问题,但如果有人仍然想知道:你应该能够通过使用fcntl
和F_SETSIG
来选择一个实时信号(信号号>= SIGRTMIN
),而不是使用默认的SIGIO
来完成你想要的。
相关文章:
- 有可能在Armadillo中复制MATLAB circshift方法吗
- 在他自己的方法中,有可能将一个对象取消引用到另一个对象吗
- 有可能使shared_ptr协变吗
- 有可能在信号处理程序中设置promise吗
- 是否有可能实现O(N)时间和O(1)空间解决方案,以实现C++中的字符串循环移位
- 是否有可能构建面向Linux和Windows的.Net Core C++ / CLI应用程序?
- 是否有可能使用debug_info获取ELF文件的源代码?
- C++,是否有可能/如何定义在.h和.cpp源文件中调用函数的类构造函数
- 有可能在C++中有类的查找表吗
- 是否有可能让 c++ dll 在后台运行 python 程序并让它填充向量图?如果是这样,如何?
- 向量的大小是否有可能为 1 但其中的元素数量为零?
- 是否有可能编写新的叮当声现代化规则?
- 是否有可能通过指向另一个未关联的子对象的指针来获取指向一个子对象的指针?
- 是否有可能通过演绎指南实现整个 std::make_tuple 功能?
- 是否有可能在没有复制的情况下传递 std::vector<int> 作为参数来获得 std::vector<std::array<int, 3>>?
- 是否有可能具有放入容器的移动操作的类型?
- 是否有可能通过溢出 C 中的第一个元素来写入数组第二个元素
- 声明是否有可能逃脱其封闭的名称空间
- 有可能在无线信号强度方面获得更高的精度吗
- 有可能防止信号凝结吗?