1 /***************************************************************************
4 copyright : (C) 2006 by Yannick Lecaillez
5 email : sizon5@gmail.com
6 ***************************************************************************/
8 /***************************************************************************
10 * This program is free software; you can redistribute it and/or modify *
11 * it under the terms of the BSD License (revised). *
13 ***************************************************************************/
28 int sig_alarm = SIGALRM;
29 int sig_child = SIGCHLD;
30 int sig_cont = SIGCONT;
31 int sig_hangup = SIGHUP;
33 int sig_pipe = SIGPIPE;
34 int sig_term = SIGTERM;
36 void (*sig_defaulthandler)() = SIG_DFL;
37 void (*sig_ignorehandler)() = SIG_IGN;
39 void sig_block(int sig)
41 /*#ifdef HAVE_SIGPROCMASK*/
46 sigprocmask(SIG_BLOCK,&ss,(sigset_t *) 0);
48 sigblock(1 << (sig - 1));
52 void sig_unblock(int sig)
54 /*#ifdef HAVE_SIGPROCMASK*/
59 sigprocmask(SIG_UNBLOCK,&ss,(sigset_t *) 0);
61 sigsetmask(sigsetmask(~0) & ~(1 << (sig - 1)));
65 void sig_blocknone(void)
67 /*#ifdef HAVE_SIGPROCMASK*/
71 sigprocmask(SIG_SETMASK,&ss,(sigset_t *) 0);
77 void sig_catch(int sig,void (*f)())
79 /*#ifdef HAVE_SIGACTION*/
84 sigemptyset(&sa.sa_mask);
85 sigaction(sig,&sa,(struct sigaction *) 0);
87 signal(sig,f); /* won't work under System V, even nowadays---dorks */
93 /*#ifdef HAVE_SIGPROCMASK*/