Guest User

Untitled

a guest
May 20th, 2018
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.70 KB | None | 0 0
  1. //*****esh-sys-utils.h******//
  2. /* Signal handler prototype */
  3. typedef void (*sa_sigaction_t)(int, siginfo_t *, void *);
  4.  
  5.  
  6.  
  7.  
  8. //*****esh-sys-utils.c******//
  9.  
  10. /* Install signal handler for signal 'sig' */
  11. void
  12. esh_signal_sethandler(int sig, sa_sigaction_t handler)
  13. {
  14. sigset_t emptymask;
  15.  
  16. sigemptyset(&emptymask);
  17. struct sigaction sa = {
  18. .sa_sigaction = handler,
  19. /* do not block any additional signals (besides 'sig') when
  20. * signal handler is entered. */
  21. .sa_mask = emptymask,
  22. /* restart system calls when possible */
  23. .sa_flags = SA_RESTART
  24. };
  25.  
  26. if (sigaction(sig, &sa, NULL) != 0)
  27. esh_sys_fatal_error("sigaction failed for signal %d", sig);
  28. }
Add Comment
Please, Sign In to add comment