Книга: Разработка приложений в среде Linux. Второе издание
12.2.1. Посылка сигналов
12.2.1. Посылка сигналов
Посылка сигналов от одного процесса другому обычно осуществляется с помощью системного вызова kill()
. Этот системный вызов подробно обсуждался в главе 10. Вариантом kill()
является tkill()
, который не предназначен для прямого использования в программах.
int tkill(pid_t pid, int signum);
Существуют два отличия между kill()
и tkill()
[59]. Первое: pid
должен быть положительным числом; tkill()
не может использоваться для отправки сигналов группам процессов, как это может kill()
. Другое отличие позволяет обработчикам сигналов определять, применялся ли вызов kill()
или tkill()
для генерации сигнала: подробности см. далее в главе.
Функция raise()
, которая представляет собой способ генерации сигналов, указанный ANSI/ISO, использует системный вызов tkill
() для генерации сигналов в системах Linux.
int raise(int signum);
Функция raise()
посылает текущему процессу сигнал, указанный в signum
[60].
- 7.2.3 Посылка сигналов процессами
- 12.2. Программный интерфейс сигналов Linux и POSIX
- 12.2.5. Нахождение набора ожидающих сигналов
- 7.4. Аналоговые перемножители сигналов
- 15.1.3. Обработка сигналов управления заданиями
- Предпосылка вторая, «денежная»
- Пример: обработчик управляющих сигналов консоли
- 10.6.4. Перехват сигналов: sigaction()
- 19.7.9. Обработка сигналов и протоколирование
- 10.6.3. Управление маской сигналов: sigprocmask() и др.
- 10.2. Действия сигналов
- 10.3.2. Программная отправка сигналов: raise()