home *** CD-ROM | disk | FTP | other *** search
/ Il CD di internet / CD.iso / SOURCE / D / LIBC / LIBC-4.6 / LIBC-4 / libc-linux / sysdeps / linux / signal.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-08-30  |  465 b   |  20 lines

  1. #include <signal.h>
  2.  
  3. __sighandler_t
  4. signal (int sig, __sighandler_t handler)
  5. {
  6.   int ret;
  7.   struct sigaction action, oaction;
  8.   action.sa_handler = handler;
  9.   __sigemptyset (&action.sa_mask);
  10.   action.sa_flags = SA_ONESHOT | SA_NOMASK | SA_INTERRUPT;
  11.   action.sa_flags &= ~SA_RESTART;
  12.   ret = __sigaction (sig, &action, &oaction); 
  13.   return (ret == -1) ? SIG_ERR : oaction.sa_handler;
  14. }
  15.  
  16. #include <gnu-stabs.h>
  17. #ifdef elf_aliasb
  18. elf_alias (signal, ssignal);
  19. #endif
  20.