 b6cbf7203b
			
		
	
	
		b6cbf7203b
		
	
	
	
	
		
			
			This patch imports the unmodified current version of NetBSD libc. The NetBSD includes are in /nbsd_include, while the libc code itself is split between lib/nbsd_libc and common/lib/libc.
		
			
				
	
	
		
			192 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			192 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .\"	$NetBSD: signal.3,v 1.24 2004/06/13 19:17:06 lha Exp $
 | |
| .\"
 | |
| .\" Copyright (c) 1980, 1991, 1993
 | |
| .\"	The Regents of the University of California.  All rights reserved.
 | |
| .\"
 | |
| .\" Redistribution and use in source and binary forms, with or without
 | |
| .\" modification, are permitted provided that the following conditions
 | |
| .\" are met:
 | |
| .\" 1. Redistributions of source code must retain the above copyright
 | |
| .\"    notice, this list of conditions and the following disclaimer.
 | |
| .\" 2. Redistributions in binary form must reproduce the above copyright
 | |
| .\"    notice, this list of conditions and the following disclaimer in the
 | |
| .\"    documentation and/or other materials provided with the distribution.
 | |
| .\" 3. Neither the name of the University nor the names of its contributors
 | |
| .\"    may be used to endorse or promote products derived from this software
 | |
| .\"    without specific prior written permission.
 | |
| .\"
 | |
| .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 | |
| .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | |
| .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | |
| .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 | |
| .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | |
| .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | |
| .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | |
| .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | |
| .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | |
| .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | |
| .\" SUCH DAMAGE.
 | |
| .\"
 | |
| .\"     @(#)signal.3	8.3 (Berkeley) 4/19/94
 | |
| .\"
 | |
| .Dd June 11, 2004
 | |
| .Dt SIGNAL 3
 | |
| .Os
 | |
| .Sh NAME
 | |
| .Nm signal
 | |
| .Nd simplified software signal facilities
 | |
| .Sh LIBRARY
 | |
| .Lb libc
 | |
| .Sh SYNOPSIS
 | |
| .In signal.h
 | |
| .\" The following is Quite Ugly, but syntactically correct.  Don't try to
 | |
| .\" fix it.
 | |
| .Ft void \*(lp*
 | |
| .Fn signal "int sig" "void \*(lp*func\*(rp\*(lpint\*(rp\*(rp\*(rp\*(lpint"
 | |
| .Sh DESCRIPTION
 | |
| This
 | |
| .Fn signal
 | |
| facility
 | |
| is a simplified interface to the more general
 | |
| .Xr sigaction 2
 | |
| facility.
 | |
| .Pp
 | |
| Signals allow the manipulation of a process from outside its
 | |
| domain as well as allowing the process to manipulate itself or
 | |
| copies of itself (children).
 | |
| There are two general types of signals:
 | |
| those that cause termination of a process and those that do not.
 | |
| Signals which cause termination of a program might result from
 | |
| an irrecoverable error or might be the result of a user at a terminal
 | |
| typing the `interrupt' character.
 | |
| Signals are used when a process is stopped because it wishes to access
 | |
| its control terminal while in the background (see
 | |
| .Xr tty 4 ) .
 | |
| Signals are optionally generated
 | |
| when a process resumes after being stopped,
 | |
| when the status of child processes changes,
 | |
| or when input is ready at the control terminal.
 | |
| Most signals result in the termination of the process receiving them
 | |
| if no action
 | |
| is taken; some signals instead cause the process receiving them
 | |
| to be stopped, or are simply discarded if the process has not
 | |
| requested otherwise.
 | |
| Except for the
 | |
| .Dv SIGKILL
 | |
| and
 | |
| .Dv SIGSTOP
 | |
| signals, the
 | |
| .Fn signal
 | |
| function allows for a signal to be caught, to be ignored, or to generate
 | |
| an interrupt.
 | |
| See
 | |
| .Xr signal 7
 | |
| for comprehensive list of supported signals.
 | |
| .Pp
 | |
| The
 | |
| .Fa func
 | |
| procedure allows a user to choose the action upon receipt of a signal.
 | |
| To set the default action of the signal to occur as listed above,
 | |
| .Fa func
 | |
| should be
 | |
| .Dv SIG_DFL .
 | |
| A
 | |
| .Dv SIG_DFL
 | |
| resets the default action.
 | |
| To ignore the signal
 | |
| .Fa func
 | |
| should be
 | |
| .Dv SIG_IGN .
 | |
| This will cause subsequent instances of the signal to be ignored
 | |
| and pending instances to be discarded.
 | |
| If
 | |
| .Dv SIG_IGN
 | |
| is not used,
 | |
| further occurrences of the signal are
 | |
| automatically blocked and
 | |
| .Fa func
 | |
| is called.
 | |
| .Pp
 | |
| The handled signal is unblocked when the
 | |
| function returns and
 | |
| the process continues from where it left off when the signal occurred.
 | |
| .Bf -symbolic
 | |
| Unlike previous signal facilities, the handler
 | |
| func() remains installed after a signal has been delivered.
 | |
| .Ef
 | |
| .Pp
 | |
| For some system calls, if a signal is caught while the call is
 | |
| executing and the call is prematurely terminated,
 | |
| the call is automatically restarted.
 | |
| (The handler is installed using the
 | |
| .Dv SA_RESTART
 | |
| flag with
 | |
| .Xr sigaction 2 ) .
 | |
| The affected system calls include
 | |
| .Xr read 2 ,
 | |
| .Xr write 2 ,
 | |
| .Xr sendto 2 ,
 | |
| .Xr recvfrom 2 ,
 | |
| .Xr sendmsg 2
 | |
| and
 | |
| .Xr recvmsg 2
 | |
| on a communications channel or a low speed device
 | |
| and during a
 | |
| .Xr ioctl 2
 | |
| or
 | |
| .Xr wait 2 .
 | |
| However, calls that have already committed are not restarted,
 | |
| but instead return a partial success (for example, a short read count).
 | |
| .Pp
 | |
| When a process which has installed signal handlers forks,
 | |
| the child process inherits the signals.
 | |
| All caught signals may be reset to their default action by a call
 | |
| to the
 | |
| .Xr execve 2
 | |
| function;
 | |
| ignored signals remain ignored.
 | |
| .Pp
 | |
| Only functions that are async-signal-safe can safely be used in signal
 | |
| handlers, see
 | |
| .Xr signal 7
 | |
| for a complete list.
 | |
| .Sh RETURN VALUES
 | |
| The previous action is returned on a successful call.
 | |
| Otherwise,
 | |
| .Dv SIG_ERR
 | |
| is returned and the global variable
 | |
| .Va errno
 | |
| is set to indicate the error.
 | |
| .Sh ERRORS
 | |
| .Fn signal
 | |
| will fail and no action will take place if one of the following occur:
 | |
| .Bl -tag -width Er
 | |
| .It Bq Er EINVAL
 | |
| Specified
 | |
| .Em sig
 | |
| is not a valid signal number.
 | |
| .It Bq Er EINVAL
 | |
| An attempt is made to ignore or supply a handler for
 | |
| .Dv SIGKILL
 | |
| or
 | |
| .Dv SIGSTOP .
 | |
| .El
 | |
| .Sh SEE ALSO
 | |
| .Xr kill 1 ,
 | |
| .Xr kill 2 ,
 | |
| .Xr ptrace 2 ,
 | |
| .Xr sigaction 2 ,
 | |
| .Xr sigaltstack 2 ,
 | |
| .Xr sigprocmask 2 ,
 | |
| .Xr sigsuspend 2 ,
 | |
| .Xr psignal 3 ,
 | |
| .Xr setjmp 3 ,
 | |
| .Xr strsignal 3 ,
 | |
| .Xr tty 4 ,
 | |
| .Xr signal 7
 | |
| .Sh HISTORY
 | |
| This
 | |
| .Fn signal
 | |
| facility appeared in
 | |
| .Bx 4.0 .
 |