gpt4 book ai didi

c++ - 是否可以防止信号凝聚?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:07:52 24 4
gpt4 key购买 nike

在 Linux 上的 C++ 中,据我了解,如果多次传递相同的信号,则信号处理程序可能只会被调用一次。是否可以覆盖此行为?比方说,我有几个文件描述符,我想在这些文件描述符上有事件时收到 SIGIO 的通知。因此,我对它们中的每一个都使用命令 F_SETOWN_EX 调用了 fcntl。但是,如果在 2 个文件描述符上同时发生事件,我可能只会得到一个 SIGIO,然后永远不知道在另一个文件描述符上发生了一个事件。

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

最佳答案

老问题,但如果有人仍然想知道:您应该能够通过使用 fcntlF_SETSIG 来选择实时信号(a信号编号 >= SIGRTMIN),而不是使用默认的 SIGIO

关于c++ - 是否可以防止信号凝聚?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30411475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com