12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h> //системная библиотека линукса
- #include <signal.h> //бибилиотека для работы с сигналами
- typedef void (*myHandler)(int);//переопределение функции
- myHandler globalHandlerSIGINT;
- myHandler globalHandlerSIGQUIT;
- void handler(int sig)
- {
- switch (sig)
- {
- case SIGINT:
- {
- printf("\nНе мешай мне работать\n");
- signal(SIGINT, globalHandlerSIGINT);
- sleep(2);
- break;
- }
- case SIGQUIT:
- {
- printf("\nТебе не прервать меня\n");
- signal(SIGINT, globalHandlerSIGQUIT);
- sleep(2);
- break;
- }
- default:
- break;
- }
-
- }
- int main()
- {
- globalHandlerSIGINT = signal(SIGINT, handler); //переменная срабатывает только 1 раз
- globalHandlerSIGQUIT = signal(SIGQUIT, handler);
-
- while(1)
- {
- printf(" Я работаю");
- }
-
- return 0;
- }
|