Răsfoiți Sursa

feat: add signal

otter 3 săptămâni în urmă
părinte
comite
5020bacb3b
4 a modificat fișierele cu 36 adăugiri și 2 ștergeri
  1. 3 1
      .vscode/settings.json
  2. 2 1
      .vscode/tasks.json
  3. BIN
      Signals/main
  4. 31 0
      Signals/main.c

+ 3 - 1
.vscode/settings.json

@@ -5,6 +5,8 @@
         "locale.h": "c",
         "math.h": "c",
         "unistd.h": "c",
-        "stat.h": "c"
+        "stat.h": "c",
+        "signal.h": "c",
+        "string.h": "c"
     }
 }

+ 2 - 1
.vscode/tasks.json

@@ -8,7 +8,8 @@
                 "-fdiagnostics-color=always",
                 "-g",
                 "${file}",
-                "-lm",
+                "-lm", //math
+                "-pthread", //сигналы
                 "-o",
                 "${fileDirname}/${fileBasenameNoExtension}"
             ],

BIN
Signals/main


+ 31 - 0
Signals/main.c

@@ -0,0 +1,31 @@
+#define _CRT_SECURE_NO_WARNINGS
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <unistd.h> //sleep
+#include <signal.h> //сигналы
+
+void handlerSign(int sig)
+{
+    switch (sig)
+    {
+        case SIGINT: printf("Не мешай мне работать\n"); 
+        //signal(SIGINT, SIG_DFL);
+        break;
+        case SIGQUIT: printf("Тебе не прервать меня\n"); 
+        //signal(SIGQUIT, SIG_DFL);
+        break;
+    }
+}
+
+int main()
+{ 
+    signal(SIGINT, handlerSign);
+    signal(SIGQUIT, handlerSign);
+    while (1) 
+    {
+        printf("Я работаю\n"); 
+        sleep(1);
+    }
+	return 0;
+}