Есть ли способ определить, как сигналы могут доставляться в ожидании данного идентификатора процесса? - PullRequest
0 голосов
/ 27 января 2012

Учитывая идентификатор процесса, я хотел бы выяснить, как сигналы (включая сигналы реального времени) доставляются и обрабатываются.Есть ли способ получить из файловой системы / proc ?, Если так, как это сделать?Пожалуйста, руководство.

1 Ответ

1 голос
/ 27 января 2012

Ссылаясь на «ожидающие сигналы»:

Можно использовать sigpending(), чтобы получить набор типов сигналов, ожидающих данного процесса.Это не фактическое количество сигналов, которые были отправлены процессу.

Ссылаясь на «доставленные сигналы»:

Можно настроить обработчик сигналов, используя sigaction(), который, в свою очередь, можетпосчитайте, как часто это называется.В любом случае ядро ​​или библиотека времени выполнения (я не уверен, что) может решить вызывать обработчики только один раз для одного или нескольких сигналов одного типа, отправленных близко друг к другу во времени.

Альтернативным способом сбора сигналов является использование sigwaitinfo(), возможно, в выделенном потоке.

...