summaryrefslogtreecommitdiff
path: root/src/signal/bsd_signal.c
diff options
context:
space:
mode:
authorJakob Kaivo <jkk@ung.org>2019-02-09 14:14:18 -0500
committerJakob Kaivo <jkk@ung.org>2019-02-09 14:14:18 -0500
commit3d7bacbaf22b36170371cd89facd0c1cd298b67b (patch)
tree775fdf0b92865170891deae51235e920f7dcf035 /src/signal/bsd_signal.c
parentc6dc9c00d7bf7eefc50b0f7e26cfdfedd135184e (diff)
merge XOPEN identifiers
Diffstat (limited to 'src/signal/bsd_signal.c')
-rw-r--r--src/signal/bsd_signal.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/signal/bsd_signal.c b/src/signal/bsd_signal.c
new file mode 100644
index 00000000..148029c0
--- /dev/null
+++ b/src/signal/bsd_signal.c
@@ -0,0 +1,21 @@
+#include <signal.h>
+
+void (*bsd_signal(int sig, void (*func)(int)))(int)
+{
+ struct sigaction act, oact;
+ act.sa_handler = func;
+ act.sa_flags = SA_RESTART;
+
+ sigemptyset(&act.sa_mask);
+ sigaddset(&act.sa_mask, sig);
+
+ if (sigaction(sig, &act, &oact) == -1) {
+ return SIG_ERR;
+ }
+
+ return oact.sa_handler;
+}
+
+/*
+XOPEN(400,700)
+*/