Displaying information about the signals
Дефинирайте функцията за обработка на сигнали SIGTERM
Иницирайте сигнално множество, като само SIGTERM е изключен
Задайте обработчик на събития за SIGTERM
Отпечатайте идентификатора на процеса (pid)
Изчакайте и изведете подходящи съобщения за входящите сигнали
Ако възникне грешка преустановете програмата
signal-info.c
#include<stdio.h>
#include<stdlib.h>
#include<signal.h>
#include<string.h>
#include<unistd.h>
void signal_handler(int sig)
{
printf("Signal %i: %s\n", sig, strsignal(sig));
exit(EXIT_SUCCESS); // 0
}
int main(int argc, char* argv[])
{
int sig;
struct sigaction sa;
sigset_t sset;
sigfillset(&sset);
sigdelset(&sset, SIGTERM);
sigprocmask(SIG_SETMASK, &sset, 0);
sa.sa_handler = signal_handler;
sigaction(SIGTERM, &sa, 0);
printf("My pid is %i\n", getpid());
while(!sigwait(&sset, &sig))
{
printf("Signal %i: %s\n", sig, strsignal(sig));
}
return EXIT_FAILURE;
}
Last updated
Was this helpful?