Ссылаясь на «ожидающие сигналы»:
Можно использовать sigpending()
, чтобы получить набор типов сигналов, ожидающих данного процесса.Это не фактическое количество сигналов, которые были отправлены процессу.
Ссылаясь на «доставленные сигналы»:
Можно настроить обработчик сигналов, используя sigaction()
, который, в свою очередь, можетпосчитайте, как часто это называется.В любом случае ядро или библиотека времени выполнения (я не уверен, что) может решить вызывать обработчики только один раз для одного или нескольких сигналов одного типа, отправленных близко друг к другу во времени.
Альтернативным способом сбора сигналов является использование sigwaitinfo()
, возможно, в выделенном потоке.