main.c 880 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <malloc.h>
  4. #include <stdlib.h>
  5. #include <string.h>
  6. #include <math.h>
  7. #include <signal.h>
  8. #include <unistd.h>
  9. static int sigINT_handler = 0;
  10. static int sigQUIT_handler = 0;
  11. void handler(int sig){
  12. if(sig == SIGINT && !sigINT_handler){
  13. printf("\n Не мешай мне работать \n");
  14. signal(SIGINT, SIG_DFL);
  15. sigINT_handler = 1;
  16. }
  17. else if(sig == SIGQUIT && !sigQUIT_handler){
  18. printf("\n Тебе не прервать меня \n");
  19. signal(SIGQUIT, SIG_DFL);
  20. sigQUIT_handler = 1;
  21. }
  22. else{
  23. printf("\nСигнал - %d\n",sig);
  24. }
  25. }
  26. int main() {
  27. signal(SIGINT,handler);
  28. signal(SIGTSTP,handler);
  29. signal(SIGQUIT,handler);
  30. while (1)
  31. {
  32. printf(" я работаю ");
  33. sleep(1);
  34. }
  35. return 0;
  36. }