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

FreeBSD Manual Pages


home | help
signal(3UCB)	   SunOS/BSD Compatibility Library Functions	  signal(3UCB)

       signal -	simplified software signal facilities

       /usr/ucb/cc [ flag ... ]	file ...
       #include	<signal.h>

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

       void (*func)();

       signal()	is a simplified	interface to the more general sigvec(3UCB) fa-
       cility.	Programs that use signal() in preference to sigvec() are  more
       likely to be portable to	all systems.

       A  signal is generated by some abnormal event, initiated	by a user at a
       terminal	(quit, interrupt, stop), by a program error (bus error,	etc.),
       by  request of another program (kill), or when a	process	is stopped be-
       cause it	wishes to access its control terminal while in the  background
       (see  termio(7I)).  Signals are optionally generated when a process re-
       sumes after being stopped, when the status of child processes  changes,
       or  when	 input	is  ready at the control terminal.  Most signals cause
       termination of the receiving process if no action is taken;  some  sig-
       nals  instead  cause  the  process receiving them to be stopped,	or are
       simply discarded	if the process has not requested otherwise. Except for
       the  SIGKILL  and SIGSTOP signals, the signal() call allows signals ei-
       ther to be ignored  or  to  interrupt  to  a  specified	location.  See
       sigvec(3UCB) for	a complete list	of the signals.

       If  func	 is  SIG_DFL, the default action for signal sig	is reinstated;
       this default is termination (with a core	image for starred signals) ex-
       cept  for signals marked	with o or a dagger.. Signals marked with o are
       discarded if the	action is SIG_DFL; signals marked with a dagger	 cause
       the process to stop.
	If  func is SIG_IGN the	signal is subsequently ignored and pending in-
       stances of the signal are discarded. Otherwise, when the	signal	occurs
       further occurrences of the signal are automatically blocked and func is

       A return	from the function unblocks the handled	signal	and  continues
       the process at the point	it was interrupted.

       If  a  caught  signal occurs during certain functions,  terminating the
       call prematurely, the call is automatically  restarted.	In  particular
       this can	occur during a read(2) or write(2) on a	slow device (such as a
       terminal; but not a file) and during a wait(2).

       The value of signal() is	the previous (or initial) value	 of  func  for
       the particular signal.

       After a fork(2) or vfork(2) the child inherits all signals.  An exec(2)
       resets all caught signals to the	default	action;	ignored	signals	remain

       The  previous action is returned	on a successful	call. Otherwise, -1 is
       returned	and errno is set to indicate the error.

       signal()	will fail and no action	will take place	if the	following  oc-

	     sig is not	a valid	signal number, or is SIGKILL or	SIGSTOP.

       kill(1),	  exec(2),   fcntl(2),	fork(2),  getitimer(2),	 getrlimit(2),
       kill(2),	  ptrace(2),   read(2),	  sigaction(2),	  wait(2),   write(2),
       abort(3C),  setjmp(3UCB), sigblock(3UCB), sigstack(3UCB), sigvec(3UCB),
       wait(3UCB), setjmp(3C), signal(3C), signal(3HEAD), termio(7I)

       Use of these interfaces should be restricted to only applications writ-
       ten  on	BSD platforms.	Use of these interfaces	with any of the	system
       libraries or in multi-threaded applications is unsupported.

       The handler routine, func, can be declared:

       void handler( signum) int signum;

       Here signum is the signal number. See sigvec(3UCB) for more details.

SunOS 5.9			  10 Jan 1996			  signal(3UCB)


Want to link to this manual page? Use this URL:

home | help