void (*signal (int signal, void (*sigfunc) (int func)))(int)
Прототип:
Описание:
Функция signal() дает указание Borland С++ выполнить функцию, на которую указывает sigfunc, в случае получения сигнала signal.
В качестве значения func может выступать один из следующих макросов, определенных в файле signal.h, либо же адрес созданной функции:
| Макрос | Значение |
|---|---|
| SIG_DFL | Использовать обработку сигнала по умолчанию |
| SIG_IGN | Игнорировать сигнал |
Если создается своя собственная функция, то она исполняется всякий раз при получении заданного сигнала. В файле signal.h определены следующие сигналы. Их значения могут присваиваться переменной signal.
| Макрос | Значение |
|---|---|
| SIGABRT | Ошибка завершения |
| SIGBREAK | Пользователь нажал клавиши CTRL-Break |
| SIGFPE | Ошибка операции с плавающей запятой |
| SIGILL | Неверная инструкция |
| SIGINT | Пользователь нажал клавиши CTRL-C |
| SIGSEGV | Некорректный доступ к памяти |
| SIGTERM | Завершить программу |
| SIGUSR1, SIGUSR2, SIGUSR3 | Сигналы, определяемые пользователем |
В случае успеха функция signal() возвращает адрес функции, которая была ранее определена для обработки заданного сигнала. В случае ошибки возвращается SIG_ERR, а переменная errno устанавливается в EINVAL.
Пример:
