Correzioni varie, imprecisioni nella gestione dei segnali, maggiori dettagli
[gapil.git] / listati / Signal.c
1 typedef void SigFunc(int);
2 inline SigFunc * Signal(int signo, SigFunc *func) 
3 {
4     struct sigaction new_handl, old_handl;
5     new_handl.sa_handler = func;
6     /* clear signal mask: no signal blocked during execution of func */
7     if (sigemptyset(&new_handl.sa_mask)!=0){        /* initialize signal set */
8         return SIG_ERR;
9     }
10     new_handl.sa_flags=0;                             /* init to 0 all flags */
11     /* change action for signo signal */
12     if (sigaction(signo, &new_handl, &old_handl)){ 
13         return SIG_ERR;
14     }
15     return (old_handl.sa_handler);
16 }