Есть ли способ создать пользовательский сигнал в Linux?

Есть ли способ создать пользовательские сигналы в Linux? Мой сигнал (номер сигнала) не должен совпадать ни с одним из существующих номеров сигналов.

Другими словами, я хочу создать свой собственный уникальный сигнал, который будет зарегистрирован и обработан моим обработчиком.

Является ли это возможным? Если да, то как?

Заранее спасибо.

5 ответов

Решение

Вы не можете добавить или зарегистрировать свой собственный SIGWHATEVER.

Увидеть sigset_t, это фиксированный размер. Увидеть valid_signal() beartraps.

SIGRTMIN через SIGRTMAX (обычно это не константы, а макросы, которые расширяются до функций, вычисляемых во время выполнения), доступны для любого использования, а также SIGUSR1 а также SIGUSR2, Первые имеют дополнительную поддержку очереди в реальном времени; последнее не Просто выберите один для использования.

Вы можете собрать свое собственное ядро ​​со специальными сигналами:)

Есть USR1 а также USR2 сигналы, предназначенные для определенных пользователем целей.

Вы можете использовать USR1 и USR2 для такого рода вещей.

Если этого недостаточно, вы можете эмулировать поведение, аналогичное сигналу, если ваше приложение прослушивает сокет, в который внешние приложения могут отправлять сообщения.

Другие вопросы по тегам