4 * Use sigaction() to simulate BSD signal()
11 void (*bsd_signal(int, void (*)(int)))(int);
13 void (*bsd_signal(int signum
, void (*handler
)(int)))(int)
15 struct sigaction action
, oldaction
;
17 memset(&action
, 0, sizeof action
);
18 action
.sa_handler
= handler
;
19 sigemptyset(&action
.sa_mask
);
20 sigaddset(&action
.sa_mask
, signum
);
21 action
.sa_flags
= SA_RESTART
;
23 if (sigaction(signum
, &action
, &oldaction
) == -1) {
31 return oldaction
.sa_handler
;