doc: Document NonStop portability issues.
[pspp] / doc / posix-functions / sigaction.texi
1 @node sigaction
2 @section @code{sigaction}
3 @findex sigaction
4
5 POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/functions/sigaction.html}
6
7 Gnulib module: sigaction
8
9 Portability problems fixed by Gnulib:
10 @itemize
11 @item
12 This function is missing on some platforms:
13 mingw.
14 @end itemize
15
16 Portability problems not fixed by Gnulib:
17 @itemize
18 @item
19 POSIX recommends that when specifying SA_RESETHAND, SA_NODEFER must
20 also be specified.
21
22 @item
23 Support for SA_ONSTACK is missing on some platforms:
24 mingw, cygwin.
25
26 @item
27 Support for SA_SIGINFO is missing on some platforms:
28 mingw, Interix 3.5.
29
30 @item
31 Support for SIGCHLD, and thus for SA_NOCLDSTOP and SA_NOCLDWAIT, is
32 missing on some platforms:
33 mingw.
34
35 @item
36 Support for SA_RESETHAND is missing on some platforms:
37 NonStop.
38
39 @item
40 Support for SA_RESTART is missing on some platforms:
41 mingw, NonStop.
42
43 @item
44 In spite of having SA_SIGACTION, struct sigaction lacks the
45 sa_sigaction member on some platforms:
46 Irix 5.3.
47
48 @item
49 The symbolic value @code{SIG_IGN} for the @code{SIGCHLD} signal is equivalent
50 to a signal handler
51 @smallexample
52 void handle_child (int sigchld)
53 @{
54   while (waitpid (-1, NULL, WNOHANG) > 0)
55     ;
56 @}
57 @end smallexample
58 except that @code{SIG_IGN} for @code{SIGCHLD} has the effect that the children
59 execution times are not accounted in the @code{times} function.
60 On some platforms (BSD? SystemV? Linux?), you need to use the @code{sigaction}
61 flag @code{SA_NOCLDWAIT} in order to obtain this behavior.
62 @end itemize