Программирование на C и C++

Онлайн справочник программиста на C и C++

signal

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.

Пример: 
Следующая строка обусловливает вызов функции myint() при нажатии клавиш CTRL-C:
signal(SIGINT, myint);

Смешанные функции