CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по библиотечным функциям языка Си
signal - установить реакцию на сигнал
Описание
Функция signal позволяет программе определить, как
следует обрабатывать сигналы от операционной системы.
Аргумент sig должен быть одной из следующих констант :
SIGABRT Ненормальное завершение
SIGFPE Ошибка арифметики с плаваюшей точкой
SIGILL Неверная инструкция (команда ЦП)
SIGINT Прерывание CTRL+C
SIGSEGV Нарушение границ сегмента
SIGTERM Завершение по CTRL+break
Нижеописанные макросы определяют значения для func:
SIG_DFL Обработка сигнала по умолчанию
SIG_IGN Игнорирование сигнала
Функция signal устанавливает ответ на сигнал. Когда
возникает сигнал, вначале режим обработки этого сигна-
ла устанавливается в SIG_DFL, а затем вызывается функ-
ция обработки сигнала func и ей передается пара-
метр sig.
Использование
#include <signal.h>
void (*signal(int sig, void (*func)(int)))(int);
Возвращаемое значение
signal возвращает предыдущее значение func. Возвращае-
мое значение SIG_ERR указывает на ошибку и errno прис-
ваивается положительное значение.
Пример
#include <stdio.h>
#include <signal.h>
/* ниже наша функция обработки сигнала */
void ctrl_break(int val)
{
signal (SIGINT, SIG_IGN);
printf("Для завершен : ");
getch();
exit(0);
}
main()
{
if (signal(SIGINT,(&ctrl_break)) == SIG_ERR)
{
perror("Не смог установить SIGINT!");
abort();
}
raise(SIGINT);
}
Рекомендация
Смотрите также raise.
