Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //*****esh-sys-utils.h******//
- /* Signal handler prototype */
- typedef void (*sa_sigaction_t)(int, siginfo_t *, void *);
- //*****esh-sys-utils.c******//
- /* Install signal handler for signal 'sig' */
- void
- esh_signal_sethandler(int sig, sa_sigaction_t handler)
- {
- sigset_t emptymask;
- sigemptyset(&emptymask);
- struct sigaction sa = {
- .sa_sigaction = handler,
- /* do not block any additional signals (besides 'sig') when
- * signal handler is entered. */
- .sa_mask = emptymask,
- /* restart system calls when possible */
- .sa_flags = SA_RESTART
- };
- if (sigaction(sig, &sa, NULL) != 0)
- esh_sys_fatal_error("sigaction failed for signal %d", sig);
- }
Add Comment
Please, Sign In to add comment