unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

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



signal(4)							    signal(4)



NAME
  signal, signal.h - Contains definitions and variables	used by	signal func-
  tions

DESCRIPTION

  The /usr/include/signal.h file defines the signals described in the follow-
  ing table.

  _____________________________________________________________________________
  Signal      Number   Meaning
  _____________________________________________________________________________

  SIGHUP	1      Hangup.
  SIGINT	2      Interrupt.
  SIGQUIT	3      Quit.  (1)
  SIGILL	4      Invalid instruction (not	reset when caught).  (1)
  SIGTRAP	5      Trace trap (not reset when caught).  (1)
  SIGABRT	6      End process (see	the abort() function).	(1)
  SIGEMT	7      EMT instruction.
  SIGFPE	8      Arithmetic exception, integer divide by 0 (zero),
		       or floating-point exception.  (1)
  SIGKILL	9      Kill (cannot be caught or ignored).
  SIGBUS	10     Specification exception.	 (1)
  SIGSEGV	11     Segmentation violation.	(1)
  SIGSYS	12     Invalid parameter to system call.  (1)
  SIGPIPE	13     Write on	a pipe when there is no	process	to read	it.
  SIGALRM	14     Alarm clock.
  SIGTERM	15     Software	termination signal.
  SIGURG	16     Urgent condition	on I/O channel.	 (2)
  SIGSTOP	17     Stop (cannot be caught or ignored).  (3)
  SIGTSTP	18     Interactive stop.  (3)
  SIGCONT	19     Continue	if stopped.  (4)
  SIGCHLD	20     To parent on child stop or exit.	 (2)
  SIGTTIN	21     Background read attempted from control terminal.	 (3)
  SIGTTOU	22     Background write	attempted from control terminal.  (3)
  SIGIO		23     Input/Output possible or	completed.  (2)
  SIGXCPU	24     CPU time	limit exceeded (see the	setrlimit() function).
  SIGXFSZ	25     File size limit exceeded	(see the setrlimit() function).
  SIGVTALRM	26     Virtual time alarm (see the setitimer() function).
  SIGPROF	27     Profiling time alarm (see the setitimer() function).
  SIGWINCH	28     Window size change.  (2)
  SIGINFO	29     Information request.  (2)
  SIGUSR1	30     User-defined signal 1.
  SIGUSR2	31     User-defined signal 2.


  Notes	to table:

  (1) Default action includes creating a core dump file.

  (2) Default action is	to ignore these	signals.

  (3) Default action is	to stop	the process receiving these signals.

  (4) Default action is	to restart or continue the process receiving these
      signals.


  The three types of actions that can be associated with a signal: SIG_DFL,
  SIG_IGN, or a	pointer	to a function are described as follows:

  SIG_DFL   Default action: signal-specific default action.

	    Except for those signal numbers marked with	a (2), (3), or (4),
	    the	default	action for a signal is to end the receiving process
	    with all of	the consequences described in the _exit() system
	    call. In addition, a memory	image file is created in the current
	    directory of the receiving process if the signal parameter is one
	    for	which a	superscript 1 appears in the preceding list and	the
	    following conditions are met:

	      +	 The effective user ID and the real user ID of the receiving
		 process are equal.

	      +	 An ordinary file named	core exists in the current directory
		 and is	writable, or it	can be created.	If the file must be
		 created, it will have the following properties:

		   -- The access permission code 0600, modified	by the file
		      creation mask (see the umask() function).

		   -- A	file owner ID that is the same as the effective	user
		      ID of the	receiving process.

		   -- A	file group ID that is inherited	from the containing
		      directory	(if the	file system is mounted grpid) or from
		      the owning process (if the file system is	mounted
		      nogrpid).

	    For	signal numbers marked with a superscript 4, the	default
	    action is to restart the receiving process if it is	stopped, or
	    to continue	execution of the receiving process.

	    For	signal numbers marked with a superscript 3, the	default
	    action is to stop the execution of the receiving process tem-
	    porarily. When a process stops, a SIGCHLD signal is	sent to	its
	    parent process, unless the parent process has set the
	    SA_NOCLDSTOP bit. While a process is stopped, any additional sig-
	    nals that are sent to the process are not delivered	until the
	    process is continued. An exception to this is SIGKILL, which
	    always terminates the receiving process.  Another exception	is
	    SIGCONT, which always causes the receiving process to restart or
	    continue running. A	process	whose parent has ended shall be	sent
	    a SIGKILL signal if	the SIGTSTP, SIGTTIN, or SIGTTOU signals are
	    generated for that process.

	    For	signal numbers marked with a superscript 2, the	default
	    action is to ignore	the signal. In this case, delivery of the
	    signal has no effect on the	receiving process.

	    If a signal	action is set to SIG_DFL while the signal is pending,
	    the	signal remains pending.

  SIG_IGN   Ignore signal.

	    Delivery of	the signal has no effect on the	receiving process.
	    If a signal	action is set to SIG_IGN while the signal is pending,
	    the	pending	signal is discarded.

	    Note that the SIGKILL and SIGSTOP signals cannot be	ignored.

  pointer to a function
	    Catch signal.

	    Upon delivery of the signal, the receiving process is to run the
	    signal-catching function specified by the pointer to function.
	    The	signal-handler subroutine can be declared as follows:

	    void handler(signal)
	    int	signal;

	    The	signal parameter is the	signal number.

  A new	signal mask is calculated and installed	for the	duration of the
  signal-catching function (or until sigprocmask() or sigsuspend() system
  calls	are made). This	mask is	formed by taking the union of the process
  signal mask, the mask	associated with	the action for the signal being
  delivered, and a mask	corresponding to the signal being delivered. The mask
  associated with the signal-catching function is not allowed to block those
  signals that cannot be ignored.  This	is enforced by the kernel without
  causing an error to be indicated.  If	and when the signal-catching function
  returns, the original	signal mask is restored	(modified by any sigproc-
  mask() calls that were made since the	signal-catching	function was called)
  and the receiving process resumes execution at the point it was inter-
  rupted.

  The signal-catching function can cause the process to	resume in a different
  context by calling the longjmp() subroutine. When the	longjmp() subroutine
  is called, the process leaves	the signal stack, if it	is currently on	it,
  and restores the process signal mask to the state when the corresponding
  setjmp() call	was made.

  Once an action is installed for a specific signal, it	remains	installed
  until	another	action is explicitly requested (by another call	to the sigac-
  tion() system	call), or until	one of the exec	system calls is	called.

  If a signal action is	set to a pointer to a function while the signal	is
  pending, the signal remains pending.

  When signal-catching functions are invoked asynchronously with process exe-
  cution, the behavior of some of the functions	defined	by this	standard is
  unspecified if they are called from a	signal-catching	function.  The fol-
  lowing set of	functions are reentrant	with respect to	signals	(that is,
  applications can invoke them,	without	restriction, from signal-catching
  functions):

  _exit()	 access()	 alarm()	 chdir()
  chmod()	 chown()	 close()	 creat()
  dup2()	 dup()		 exec()		 fcntl()
  fork()	 fstat()	 getegid()	 geteuid()
  getgid()	 getgroups()	 getpgrp()	 getpid()
  getppid()	 getuid()	 kill()		 link()
  lseek()	 mkdir()	 mkfifo()	 open()
  pause()	 pipe()		 read()		 rename()
  rmdir()	 sem_post()	 setgid()	 setpgrp()
  setuid()	 sigaction()	 sigaddset()	 sigdelset()
  sigfillset()	 siginitset()	 sigismember()	 signal()
  sigpending()	 sigprocmask()	 sigsuspend()	 sleep()
  statx()	 tcdrain()	 tcflow()	 tcflush()
  tcgetattr()	 tcgetprgp()	 tcsendbreak()	 tcsetattr()
  tcsetpgrp()	 time()		 times()	 umask()
  uname()	 unlink()	 ustat()	 utime()
  wait2()	 wait()		 write()

  All other system calls should	not be called from signal-catching functions
  since	their behavior is undefined.




RELATED	INFORMATION

  Functions: sigaction(2), sigblock(2),	sigemptyset(3),	siginterrupt(3),
  siglongjmp(3), sigpause(3), sigpending(2), sigprocmask(2), sigreturn(2),
  sigset(3), sigsetjmp(3), sigstack(2),	sigsuspend(2), sigvec(2), sigwait(3)