/* Author: Kasper Laudrup This code is in the public domain. From patch from bko 214908 */ #include #include #include int signals[] = {SIGSTOP, SIGCONT, SIGHUP, SIGINT, SIGTERM, SIGKILL, SIGUSR1, SIGUSR2}; print_signal_name(int signal) { char* signame; switch(signal) { case SIGSTOP: signame = "SIGSTOP"; break; case SIGCONT: signame = "SIGCONT"; break; case SIGHUP: signame = "SIGHUP"; break; case SIGINT: signame = "SIGINT"; break; case SIGTERM: signame = "SIGTERM"; break; case SIGKILL: signame = "SIGKILL"; break; case SIGUSR1: signame = "SIGUSR1"; break; case SIGUSR2: signame = "SIGUSR1"; break; default: signame = "UNKNOWN"; break; } printf("Caught signal: %s\n", signame); } void handler(int signal) { } int main(int argc, char *argv[]) { sigset_t waitset; struct sigaction sigact; int signal, result, i; int signals_size = sizeof(signals) / sizeof(int); sigemptyset(&sigact.sa_mask); sigemptyset(&waitset); sigact.sa_flags = 0; sigact.sa_handler = handler; for (i=0; i