summaryrefslogtreecommitdiff
path: root/open_issues/alarm_setitimer/alrm.c
diff options
context:
space:
mode:
Diffstat (limited to 'open_issues/alarm_setitimer/alrm.c')
-rw-r--r--open_issues/alarm_setitimer/alrm.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/open_issues/alarm_setitimer/alrm.c b/open_issues/alarm_setitimer/alrm.c
new file mode 100644
index 00000000..689020ee
--- /dev/null
+++ b/open_issues/alarm_setitimer/alrm.c
@@ -0,0 +1,32 @@
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+static const char msg[] = "< got alarm\n";
+
+static void sighandler(int signo __attribute__((unused)))
+{
+ write(STDOUT_FILENO, msg, sizeof(msg) - 1);
+}
+
+int main()
+{
+ struct sigaction sa;
+ sa.sa_handler = sighandler;
+ sigemptyset(&sa.sa_mask);
+ sa.sa_flags = 0;
+ if (sigaction(SIGALRM, &sa, NULL) == -1)
+ return 1;
+
+ printf("> alarm in 2 secs...\n");
+ alarm(2);
+ pause();
+
+ printf("> alarm!\n");
+
+ pause();
+ printf("> got a signal...\n");
+
+ return 0;
+}