view doc/posix-functions/sigaction.texi @ 10229:29502a2dd08a

New module sigaction, for mingw. * modules/sigaction: New module... * modules/sigaction-tests: ...and its test. * m4/sigaction.m4: New file. * lib/sigaction.c: Likewise. * tests/test-sigaction.c: Likewise. * m4/signal_h.m4 (gl_SIGNAL_H_DEFAULTS): Add sigaction variables. * modules/signal (Makefile.am): Likewise. * lib/signal.in.h (!@HAVE_SIGACTION@): Define replacements when needed. * doc/posix-headers/signal.texi (signal.h): Mention provided types. * doc/posix-functions/siginterrupt.texi (siginterrupt): Mention that sigaction is preferable. * doc/posix-functions/sigaction.texi (sigaction): Mention new module. * MODULES.html.sh (Support for systems lacking POSIX:2001): Add sigaction. Signed-off-by: Eric Blake <ebb9@byu.net>
author Eric Blake <ebb9@byu.net>
date Sat, 21 Jun 2008 14:32:55 -0600
parents 070329237839
children a6493a165dd2
line wrap: on
line source

@node sigaction
@section @code{sigaction}
@findex sigaction

POSIX specification: @url{http://www.opengroup.org/susv3xsh/sigaction.html}

Gnulib module: sigaction

Portability problems fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
mingw.
@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, cygwin.

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

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

@item
Support for SA_RESTART is missing on some platforms:
mingw.

@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