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

FreeBSD Manual Pages

  
 
  

home | help
signal(3C)		 Standard C Library Functions		    signal(3C)

NAME
       signal,	sigset,	 sighold,  sigrelse,  sigignore, sigpause - simplified
       signal management for application processes

SYNOPSIS
       #include	<signal.h>

       void (*signal (int sig, void (*disp)(int)))(int);

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

       int sighold(int sig);

       int sigrelse(int	sig);

       int sigignore(int sig);

       int sigpause(int	sig);

DESCRIPTION
       These functions provide simplified signal  management  for  application
       processes.  See	signal.h(3HEAD)	 for  an explanation of	general	signal
       concepts.

       The signal() and	sigset() functions modify 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
       signal()	is used, disp is the address of	a signal handler, and  sig  is
       not   SIGILL,  SIGTRAP,	or  SIGPWR, the	system first sets the signal's
       disposition  to	 SIG_DFL  before  executing  the  signal  handler.  If
       sigset()	 is used and disp is the address of a signal handler, the sys-
       tem adds	sig to the calling process's signal  mask before executing the
       signal  handler;	 when  the signal handler returns, the system restores
       the calling process's signal mask 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 calling process's	signal	mask  and  the
       signal's	disposition remains unchanged.

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

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

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

       The sigpause() function removes sig from	the calling  process's	signal
       mask  and suspends the calling process until a signal is	received.

RETURN VALUES
       Upon successful completion, signal() returns the	signal's previous dis-
       position. Otherwise, it returns	SIG_ERR	and sets errno to indicate the
       error.

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

       Upon successful completion,  sighold(),	sigrelse(),  sigignore(),  and
       sigpause(),  return   0.	 Otherwise,  they return  -1 and set  errno to
       indicate	the error.

ERRORS
       These functions fail if:

       EINTR	       A signal	was caught during the execution	sigpause().

       EINVAL	       The value of the	sig argument is	not a valid signal  or
		       is equal	to  SIGKILL or	SIGSTOP.

USAGE
       The  sighold()  function	 used  in  conjunction with sigrelse() or sig-
       pause() may be used to establish	critical regions of code that  require
       the delivery of a signal	to be temporarily deferred.

       If signal() or sigset() is used to set  SIGCHLD's disposition to	a sig-
       nal handler, SIGCHLD will not be	sent when the calling process's	 chil-
       dren are	stopped	or continued.

       If  any of the above functions are used to set SIGCHLD's	disposition to
       SIG_IGN,	the calling process's child processes will not	create	zombie
       processes  when	they  terminate	 (see exit(2)).	If the calling process
       subsequently waits for its children, it blocks until all	of  its	 chil-
       dren  terminate;	 it  then  returns  -1	with  errno set	to ECHILD (see
       wait(3C)	and waitid(2)).

       The system guarantees that if more than one instance of the same	signal
       is  generated  to  a process, at	least one signal will be received.  It
       does not	guarantee the reception	of every generated signal.

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       +-----------------------------+-----------------------------+
       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       +-----------------------------+-----------------------------+
       |Interface Stability	     |Standard			   |
       +-----------------------------+-----------------------------+
       |MT-Level		     |MT-Safe			   |
       +-----------------------------+-----------------------------+

SEE ALSO
       exit(2),	kill(2), pause(2), sigaction(2), sigsend(2),  waitid(2),  sig-
       nal.h(3HEAD), wait(3C)attributes(5), standards(5)

SunOS 5.10			  14 Aug 2002			    signal(3C)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | USAGE | ATTRIBUTES | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=signal&sektion=3c&manpath=SunOS+5.10>

home | help