summaryrefslogtreecommitdiff
path: root/utils/testsignal.cc
diff options
context:
space:
mode:
authorchatty2000-11-28 14:19:34 +0000
committerchatty2000-11-28 14:19:34 +0000
commit09f57c8dffd9a8ba0983cce13381aef716f43801 (patch)
tree49c5faa7cd1b76eea36169b5ecce09411b2802c2 /utils/testsignal.cc
parent2575756ec6f41bd05bf4505ccc0253fad0ed77c4 (diff)
downloadivy-league-09f57c8dffd9a8ba0983cce13381aef716f43801.zip
ivy-league-09f57c8dffd9a8ba0983cce13381aef716f43801.tar.gz
ivy-league-09f57c8dffd9a8ba0983cce13381aef716f43801.tar.bz2
ivy-league-09f57c8dffd9a8ba0983cce13381aef716f43801.tar.xz
*** empty log message ***
Diffstat (limited to 'utils/testsignal.cc')
-rw-r--r--utils/testsignal.cc74
1 files changed, 74 insertions, 0 deletions
diff --git a/utils/testsignal.cc b/utils/testsignal.cc
new file mode 100644
index 0000000..4971b51
--- /dev/null
+++ b/utils/testsignal.cc
@@ -0,0 +1,74 @@
+#include <stdio.h>
+#include <stdlib.h>
+#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);
+}