diff options
author | Jakob Kaivo <jkk@ung.org> | 2019-02-09 14:14:18 -0500 |
---|---|---|
committer | Jakob Kaivo <jkk@ung.org> | 2019-02-09 14:14:18 -0500 |
commit | 3d7bacbaf22b36170371cd89facd0c1cd298b67b (patch) | |
tree | 775fdf0b92865170891deae51235e920f7dcf035 /src/signal/bsd_signal.c | |
parent | c6dc9c00d7bf7eefc50b0f7e26cfdfedd135184e (diff) |
merge XOPEN identifiers
Diffstat (limited to 'src/signal/bsd_signal.c')
-rw-r--r-- | src/signal/bsd_signal.c | 21 |
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) +*/ |