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.
Пример: