#include #include #include "Signal.h" extern "C" { int write (int, const void*, unsigned int); int strlen (const char*); } const char* signal_strings [32] = { "SIGHUP\n", "SIGINT\n", "SIGQUIT\n", "SIGILL\n", "SIGTRAP\n", "SIGABRT\n", "SIGEMT\n", "SIGFPE\n", "SIGKILL\n", "SIGBUS\n", "SIGSEGV\n", "SIGSYS\n", "SIGPIPE\n", "SIGALRM\n", "SIGTERM\n", "SIGUSR1\n", "SIGUSR2\n", "SIGCHLD\n", "SIGPWR\n", "SIGVTALRM\n", "SIGPROF\n", "SIGIO\n", "SIGWINDOW\n", "SIGSTOP\n", "SIGTSTP\n", "SIGCONT\n", "SIGTTIN\n", "SIGTTOU\n", "SIGURG\n", "SIGLOST\n", "SIGRESERVE\n", "SIGDIL\n" }; void outputsig (int sig) { write (1, signal_strings [sig-1], strlen (signal_strings [sig-1])); } void ignoresig (int) { } main () { { printf ("block signal 2\n"); CcuSignalBlocker b (2); getchar (); } printf ("print signals 1 and 2\n"); CcuSignalHandler s1 (1, outputsig); CcuSignalHandler s3 (2, outputsig); getchar (); { printf ("ignore signal 1\n"); CcuSignalHandler s2 (1, ignoresig); getchar (); } printf ("print again signal 1\n"); while (1); }