root/branches/2.1/msdos/sigaction.c

Revision 3104, 0.7 kB (checked in by himi, 6 years ago)

set svn:eol-style

  • Property svn:eol-style set to native
Line 
1 /* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
2 #include <signal.h>
3 #include <errno.h>
4
5 int
6 sigaction(int _sig, const struct sigaction *_act, struct sigaction *_oact)
7 {
8   int retval = 0;
9
10   if (_oact)
11   {
12     void (*installed_sig)(int) = signal (_sig, SIG_IGN);
13
14     /* FIXME */
15     if (installed_sig == SIG_ERR)
16     {
17       retval = -1;
18       errno = EINVAL;
19     }
20     else
21       signal (_sig, installed_sig);
22     _oact->sa_handler = installed_sig;
23     retval = sigemptyset (&_oact->sa_mask);
24     _oact->sa_flags = 0;
25   }
26   if (_act)
27   {
28     if (signal (_sig, _act->sa_handler) == SIG_ERR)
29     {
30       retval = -1;
31       errno = EINVAL;
32     }
33   }
34   return 0;
35 }
36
37
38
Note: See TracBrowser for help on using the browser.