Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (OSF1-V5.1-alpha)
Apropos / Subsearch:
optional field

sigprocmask(2)						       sigprocmask(2)


  sigprocmask, sigsetmask - Sets the current signal mask


  Standard C Library (libc)


  #include <&lt;signal.h>&gt;

  int sigprocmask(
	  int how,
	  const	sigset_t *set,
	  sigset_t *o_set );

  The following	function declaration does not conform to current standards
  and is supported only	for backward compatibility:

  int sigsetmask (
	  int signal_mask );


  Interfaces documented	on this	reference page conform to industry standards
  as follows:

  sigprocmask(): XSH4.2

  Refer	to the standards(5) reference page for more information	about indus-
  try standards	and associated tags.


  how	    Indicates the manner in which the set of masked signals is
	    changed; it	has one	of the following values:

	    SIG_BLOCK The resulting set	is the union of	the current set	and
		      the signal set pointed to	by the set parameter.

		      The resulting set	is the intersection of the current
		      set and the complement of	the signal set pointed to by
		      the set parameter.

		      The resulting set	is the signal set pointed to by	the
		      set parameter.

  set	    Specifies the signal set.  If the value of the set parameter is
	    not	null, it points	to a set of signals to be used to change the
	    currently blocked set. If the value	of the set parameter is	null,
	    the	value of the how parameter is not significant and the process
	    signal mask	is unchanged; thus, the	call can be used to inquire
	    about currently blocked signals.

  o_set	    If the o_set parameter is not the null value, the signal mask in
	    effect at the time of the call is stored in	the space pointed to
	    by the o_set parameter.

	    [Tru64 UNIX]  Specifies the	new signal mask	for the	process.


  The sigprocmask() function is	used to	examine	or change the signal mask of
  the calling process.

  Typically, you would use the sigprocmask (SIG_BLOCK) function	to block sig-
  nals during a	critical section of code, and then use the sigprocmask
  (SIG_SETMASK)	function to restore the	mask to	the previous value returned
  by the sigprocmask (SIG_BLOCK) function.

  If there are any unblocked signals pending after the call to the sigproc-
  mask() function, at least one	of those signals will be delivered before the
  sigprocmask()	function returns.

  The sigprocmask() function does not allow the	SIGKILL	or SIGSTOP signals to
  be blocked. If a program attempts to block one of these signals, the sig-
  procmask() function gives no indication of the error.

  [Tru64 UNIX]	The sigsetmask() function allows the process signal mask to
  change for signal values 1 to	31.  This same function	can be accomplished
  for all values with the sigprocmask(SIG_SETMASK) function. The signal	of
  value	i will be blocked if the i-th bit of signal_mask parameter is set.


  To set the signal mask to block only the SIGINT signal from delivery,

       #include	<&lt;signal.h>&gt;
       int return_value;
       sigset_t	newset;
       sigaddset(&&amp;newset, SIGINT);
       return_value = sigprocmask (SIG_SETMASK,	&&amp;newset, NULL);


  Upon successful completion, the sigprocmask()	function returns a value of 0
  (zero). If the sigprocmask() function	fails, the signal mask of the process
  is unchanged,	a value	of -1 is returned, and errno is	set to indicate	the

  [Tru64 UNIX]	Upon successful	completion, the	sigsetmask() function returns
  the value of the previous signal mask.  If the function fails, a value of
  -1 is	returned.


  The sigprocmask() function sets errno	to the specified values	for the	fol-
  lowing conditions:

  [EINVAL]  The	value of the how parameter is not equal	to one of the defined

  [EFAULT]  [Tru64 UNIX]  The set or o_set parameter points to a location
	    outside the	allocated address space	of the process.


  Functions: kill(2), sigaction(2), sigsuspend(2), sigvec(2), sigpause(3)

  Standards: standards(5)