Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SIGPAUSE(2)		      System Calls Manual		   SIGPAUSE(2)

NAME
       sighold,	 sigignore, sigpause, sigrelse,	sigset -- legacy interface for
       signal management

LIBRARY
       Standard	C Library (libc, -lc)

SYNOPSIS
       #include	<signal.h>

       int
       sighold(int sig);

       int
       sigignore(int sig);

       int
       xsi_sigpause(int	sigmask);

       int
       sigrelse(int sig);

       void (*)(int)
       sigset(int, void	(*disp)(int));

       int
       sigpause(int sigmask);

DESCRIPTION
       This interface is made obsolete by sigsuspend(2)	and sigaction(2).

       The sigset() function modifies signal dispositions.  The	 sig  argument
       specifies  the  signal,	which  may  be	any  signal except SIGKILL and
       SIGSTOP.	 The disp argument specifies the signal's  disposition,	 which
       may  be	SIG_DFL,  SIG_IGN,  or	the  address  of a signal handler.  If
       sigset()	is used, and disp is the address of a signal handler, the sys-
       tem adds	sig to the signal mask of the calling process before executing
       the signal handler; when	the signal handler  returns,  the  system  re-
       stores the signal mask of the calling process to	its state prior	to the
       delivery	 of the	signal.	 In addition, if sigset() is used, and disp is
       equal to	SIG_HOLD, sig is added to  the	signal	mask  of  the  calling
       process and sig 's disposition remains unchanged.  If sigset() is used,
       and  disp is not	equal to SIG_HOLD, sig is removed from the signal mask
       of the calling process.

       The sighold() function adds sig to  the	signal	mask  of  the  calling
       process.

       The sigrelse() function removes sig from	the signal mask	of the calling
       process.

       The sigignore() function	sets the disposition of	sig to SIG_IGN.

       The  xsi_sigpause()  function  removes  sig from	the signal mask	of the
       calling process and suspend the calling process until a signal  is  re-
       ceived.	 The  xsi_sigpause()  function restores	the signal mask	of the
       process to its original state before returning.

       The sigpause() function assigns sigmask to the set  of  masked  signals
       and then	waits for a signal to arrive; on return	the set	of masked sig-
       nals  is	 restored.  The	sigmask	argument is usually 0 to indicate that
       no signals are to be blocked.

RETURN VALUES
       The sigpause() and xsi_sigpause() functions always terminate  by	 being
       interrupted, returning -1 with errno set	to EINTR.

       Upon successful completion, sigset() returns SIG_HOLD if	the signal had
       been  blocked  and the signal's previous	disposition if it had not been
       blocked.	 Otherwise, SIG_ERR is returned	and errno set to indicate  the
       error.

       For  all	 other	functions,  upon successful completion,	0 is returned.
       Otherwise, -1 is	returned and errno is set to indicate the error:

       [EINVAL]		  The sig argument is not a valid signal number.

       [EINVAL]		  For sigset() and sigignore() functions,  an  attempt
			  was made to catch or ignore SIGKILL or SIGSTOP.

SEE ALSO
       kill(2),	  sigaction(2),	 sigblock(2),  sigprocmask(2),	sigsuspend(2),
       sigvec(2)

STANDARDS
       The sigpause() function is implemented for compatibility	with  historic
       4.3BSD applications.  An	incompatible interface by the same name, which
       used  a	single	signal	number rather than a mask, was present in AT&T
       System V	UNIX, and  was	copied	from  there  into  the	X/Open	System
       Interfaces  (XSI)  option of IEEE Std 1003.1-2001 ("POSIX.1").  FreeBSD
       implements  it  under  the   name   xsi_sigpause().    The   sighold(),
       sigignore(), sigrelse() and sigset() functions are implemented for com-
       patibility with System V	and XSI	interfaces.

HISTORY
       The  sigpause()	function  appeared  in 4.2BSD and has been deprecated.
       All other functions appeared in FreeBSD 8.1 and were deprecated	before
       being implemented.

FreeBSD	14.3			 June 2, 1993			   SIGPAUSE(2)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=sigpause&sektion=2&manpath=FreeBSD+14.3-RELEASE+and+Ports>

home | help