summaryrefslogtreecommitdiff
path: root/gnulib/doc/posix-functions/sigaction.texi
blob: b4db4037ef765ef2a3a648c7f25e7817ca184cd2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
@node sigaction
@section @code{sigaction}
@findex sigaction

POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/functions/sigaction.html}

Gnulib module: sigaction

Portability problems fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
mingw, MSVC 9.
@end itemize

Portability problems not fixed by Gnulib:
@itemize
@item
POSIX recommends that when specifying SA_RESETHAND, SA_NODEFER must
also be specified.

@item
Support for SA_ONSTACK is missing on some platforms:
mingw, MSVC 9, cygwin.

@item
Support for SA_SIGINFO is missing on some platforms:
mingw, MSVC 9, Interix 3.5.

@item
Support for SIGCHLD, and thus for SA_NOCLDSTOP and SA_NOCLDWAIT, is
missing on some platforms:
mingw, MSVC 9.

@item
Support for SA_RESETHAND is missing on some platforms:
NonStop.

@item
Support for SA_RESTART is missing on some platforms:
mingw, MSVC 9, NonStop.

@item
In spite of having SA_SIGACTION, struct sigaction lacks the
sa_sigaction member on some platforms:
Irix 5.3.

@item
The symbolic value @code{SIG_IGN} for the @code{SIGCHLD} signal is equivalent
to a signal handler
@smallexample
void handle_child (int sigchld)
@{
  while (waitpid (-1, NULL, WNOHANG) > 0)
    ;
@}
@end smallexample
except that @code{SIG_IGN} for @code{SIGCHLD} has the effect that the children
execution times are not accounted in the @code{times} function.
On some platforms (BSD? SystemV? Linux?), you need to use the @code{sigaction}
flag @code{SA_NOCLDWAIT} in order to obtain this behavior.
@end itemize