Изчакване на сигнали
#include<signal.h>
int sigwait(const sifset_t *set, int *sig);Пример за изчакване на сигнал
signal-wait.c
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <unistd.h>
int main(int argc, char ** argv)
{
int sig;
struct sigaction sa;
sigset_t newset;
sigemptyset(&newset);
sigaddset(&newset, SIGINT); // Ctr + C
sigprocmask(SIG_BLOCK, &newset, 0);
sigaction(SIGTERM, &sa, 0);
printf("My pid is %i\n", getpid());
printf("Waiting...\n");
while(!sigwait(&newset, &sig))
{
printf("SIGINT recieved\n");
return EXIT_SUCCESS; // 0
}
return EXIT_FAILURE; // -1
}Last updated