X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=listati%2FAction.c;fp=listati%2FAction.c;h=b119244ef94f5917d0494751577d5eaa65d7a876;hp=0000000000000000000000000000000000000000;hb=381b50b7a33f32f8f262e59a6cdf16faf57c94ae;hpb=c2e762abed93fe970c6c4d019a8bfe95fadb4efa diff --git a/listati/Action.c b/listati/Action.c new file mode 100644 index 0000000..b119244 --- /dev/null +++ b/listati/Action.c @@ -0,0 +1,15 @@ +inline SigAction * Action(int signo, SigAction *func) +{ + struct sigaction new_handl, old_handl; + new_handl.sa_flags=SA_SIGINFO; /* we use sa_sigaction handler */ + new_handl.sa_sigaction = func; /* set signal handler */ + /* clear signal mask: no signal blocked during execution of func */ + if (sigemptyset(&new_handl.sa_mask)!=0){ /* initialize signal set */ + return NULL; + } + /* change action for signo signal */ + if (sigaction(signo, &new_handl, &old_handl)){ + return NULL; + } + return (old_handl.sa_sigaction); +}