#include <signal.h> | |
#include <stdio.h> | |
#include <string.h> | |
static const char *prefix = "TEST_PROCESS"; | |
void signal_handler(int sig) | |
{ | |
static int logged = 0; | |
if (logged == 0) { | |
logged = 1; | |
printf("%s: Signal received: %s\n", prefix, strsignal(sig)); | |
fflush(stdout); | |
} | |
} | |
int main() | |
{ | |
struct sigaction act = { | |
.sa_handler = signal_handler, | |
.sa_flags = SA_NODEFER, | |
}; | |
sigemptyset(&act.sa_mask); | |
sigaction(SIGINT, &act, 0); | |
printf("%s: Signal handler ready.\n", prefix); | |
fflush(stdout); | |
while (1) { | |
sleep(1); | |
} | |
} |