aboutsummaryrefslogtreecommitdiff
path: root/semestr-5/so/lista2/test.c
blob: 64e4166f73ee6a7ebacab355e494da8a0e0a9328 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <signal.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>

static void signal_handler(int signum) {
  if (signum == SIGINT) {
    write(STDOUT_FILENO, "XD\n", 3);
    _exit(0);
  }
}


int main() {
    signal(SIGINT, signal_handler);
    sigset_t mask;
    sigemptyset(&mask);
    sigaddset(&mask, SIGINT);
    // sigfillset(&mask);
    // sigdelset(&mask, SIGINT);
    // sigprocmask(SIG_BLOCK, &mask, NULL);
    // // int *p = NULL;
    // // sleep(10);
    // // *p = 1;
    // // pause();
    // // abort();
    // _exit(0);
    // printf("Lmao\n");
    // while(1) {}
    int sig;
    sigwait(&mask, &sig);
    printf("sig: %d\n", sig);
}