Прогон программы с пользовательской обработкой сигнала SIGINT
Рассмотрим теперь другую программу – 13–14-3.c:
/* Программа с пользовательской обработкой сигнала SIGINT */ #include <signal.h> #include <stdio.h> /* Функция my_handler – пользовательский обработчик сигнала */ void my_handler(int nsig){ printf("Receive signal %d, CTRL-C pressed\n", nsig); } int main(void){ /* Выставляем реакцию процесса на сигнал SIGINT */ (void)signal(SIGINT, my_handler); /*Начиная с этого места, процесс будет печатать сообщение о возникновении сигнала SIGINT */ while(1); return 0; }
Листинг 13-14.3. Программа (13–14-3.c) с пользовательской обработкой сигнала SIGINT. (html, txt)
Эта программа отличается от программы из раздела "Прогон программы, игнорирующей сигнал SIGINT" тем, что в ней введена обработка сигнала SIGINT пользовательской функцией. Наберите, откомпилируйте и запустите эту программу, проверьте ее реакцию на нажатие клавиш <CTRL> и <C> и на нажатие клавиш <CTRL> и <4>.