Provided by: manpages-posix-dev_2013a-2_all bug

PROLOG

       This  manual  page  is part of the POSIX Programmer's Manual.  The Linux implementation of
       this interface may differ (consult the corresponding Linux  manual  page  for  details  of
       Linux behavior), or the interface may not be implemented on Linux.

NAME

       sigemptyset — initialize and empty a signal set

SYNOPSIS

       #include <signal.h>

       int sigemptyset(sigset_t *set);

DESCRIPTION

       The  sigemptyset()  function  initializes  the signal set pointed to by set, such that all
       signals defined in POSIX.1‐2008 are excluded.

RETURN VALUE

       Upon successful completion, sigemptyset() shall return 0; otherwise, it  shall  return  −1
       and set errno to indicate the error.

ERRORS

       No errors are defined.

       The following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       None.

RATIONALE

       The  implementation  of the sigemptyset() (or sigfillset()) function could quite trivially
       clear (or set) all the bits in the signal set. Alternatively, it would  be  reasonable  to
       initialize  part of the structure, such as a version field, to permit binary-compatibility
       between releases where the size of the set varies. For such reasons, either  sigemptyset()
       or  sigfillset() must be called prior to any other use of the signal set, even if such use
       is read-only (for example, as an argument to sigpending()).  This function is not intended
       for dynamic allocation.

       The sigfillset() and sigemptyset() functions require that the resulting signal set include
       (or exclude) all the signals defined in  this  volume  of  POSIX.1‐2008.  Although  it  is
       outside the scope of this volume of POSIX.1‐2008 to place this requirement on signals that
       are implemented as extensions, it is recommended that implementation-defined signals  also
       be  affected  by  these  functions.  However,  there may be a good reason for a particular
       signal not to be affected. For example, blocking  or  ignoring  an  implementation-defined
       signal  may  have  undesirable side-effects, whereas the default action for that signal is
       harmless. In such a case, it would be preferable for such a signal to be excluded from the
       signal set returned by sigfillset().

       In  early  proposals there was no distinction between invalid and unsupported signals (the
       names of optional signals that were not supported by an implementation were not defined by
       that  implementation).  The  [EINVAL]  error  was  thus  specified as a required error for
       invalid signals. With that distinction, it is not necessary to require implementations  of
       these  functions  to  determine  whether an optional signal is actually supported, as that
       could have a significant performance impact for little value. The error  could  have  been
       required  for  invalid  signals  and  optional  for  unsupported  signals, but this seemed
       unnecessarily complex. Thus, the error is optional in both cases.

FUTURE DIRECTIONS

       None.

SEE ALSO

       Section 2.4, Signal Concepts, pthread_sigmask(), sigaction(), sigaddset(), sigdelset(),
       sigfillset(), sigismember(), sigpending(), sigsuspend()

       The Base Definitions volume of POSIX.1‐2008, <signal.h>

COPYRIGHT

       Portions  of  this  text  are  reprinted  and  reproduced in electronic form from IEEE Std
       1003.1, 2013 Edition, Standard for Information Technology  --  Portable  Operating  System
       Interface  (POSIX),  The Open Group Base Specifications Issue 7, Copyright (C) 2013 by the
       Institute of Electrical and Electronics Engineers, Inc  and  The  Open  Group.   (This  is
       POSIX.1-2008  with  the  2013  Technical  Corrigendum  1  applied.)  In  the  event of any
       discrepancy between this version and the original IEEE and The Open  Group  Standard,  the
       original  IEEE  and The Open Group Standard is the referee document. The original Standard
       can be obtained online at http://www.unix.org/online.html .

       Any typographical or formatting errors that appear in this page are most  likely  to  have
       been  introduced  during  the conversion of the source files to man page format. To report
       such errors, see https://www.kernel.org/doc/man-pages/reporting_bugs.html .