Книга: Язык программирования Си. Издание 3-е, исправленное
B9. Сигналы:
B9. Сигналы: <signal.h>
Заголовочный файл <signal.h> предоставляет средства для обработки исключительных ситуаций, возникающих во время выполнения программы, таких как прерывание, вызванное внешним источником или ошибкой в вычислениях.
void (*signal(int sig, void (*handler)(int)))(int)
signal устанавливает, как будут обрабатываться последующие сигналы. Если параметр handler имеет значение SIG_DFL, то используется зависимая от реализации "обработка по умолчанию"; если значение handler равно SIG_IGN, то сигнал игнорируется; в остальных случаях будет выполнено обращение к функции, на которую указывает handler с типом сигнала в качестве аргумента. В число допустимых видов сигналов входят:
SIGABRT | аварийное завершение, например от abort; |
SIGFPE | арифметическая ошибка: деление на 0 или переполнение; |
SIGILL | неверный код функции (недопустимая команда); |
SIGINT | запрос на взаимодействие, например прерывание; |
SIGSEGV | неверный доступ к памяти, например выход за границы; |
SIGTERM | требование завершения, посланное в программу. |
signal возвращает предыдущее значение handler в случае специфицированного сигнала, или SIGERR в случае возникновения ошибки.
Когда в дальнейшем появляется сигнал sig, сначала восстанавливается готовность поведения "по умолчанию", после чего вызывается функция, заданная в параметре handler, т.е. как бы выполняется вызов (*handler)(sig). Если функция handler вернет управление назад, то вычисления возобновятся с того места, где застал программу пришедший сигнал. Начальное состояние сигналов зависит от реализации.
int raise(int sig)
raise посылает в программу сигнал sig. В случае неудачи возвращает ненулевое значение.
- B1. Ввод-вывод: ‹stdio.h›
- B2. Проверки класса символа: ‹ctype.h›
- B3. Функции, оперирующие со строками:
- B4. Математические функции:
- B5. Функции общего назначения:
- B6. Диагностика:
- B7. Списки аргументов переменной длины:
- B8. Дальние переходы:
- B9. Сигналы:
- B10. Функции даты и времени: ‹time.h›
- B11. Зависящие от реализации пределы: и
- Глава 6 BIOS – базовая система ввода-вывода
- Как работает BIOS
- Описание программы настройки BIOS
- Звуковые сигналы BIOS
- 12.6. Сигналы реального времени
- 7.2.6.3. Системные демоны и традиционные сигналы
- Сигналы и шумы
- Световые сигналы
- Сигналы
- Глава 10 Сигналы
- 10.3. Стандартные сигналы С: signal() и raise()
- 10.6. Сигналы POSIX