blob: eb3672c68f7e13c82ec6277af1538b0d06392676 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
|
#include <signal.h>
sighandler_t signal(int signum, sighandler_t action) {
struct sigaction sa,oa;
sa.sa_handler=action;
sigemptyset(&sa.sa_mask);
sigaddset(&sa.sa_mask,signum);
sa.sa_flags=SA_RESTART|SA_NODEFER;
if (sigaction(signum,&sa,&oa))
return SIG_ERR;
return oa.sa_handler;
}
|