March 28, 2006 SIGNAL 7

### NAME

signal - signal facilities

### DESCRIPTION

The <```signal.h`> header file defines the following signals:

Value | Name | Default Action | Description
1 | ```SIGHUP` | `terminate process` | `terminal line hangup`
2 | ```SIGINT` | `terminate process` | `interrupt program`
3 | ```SIGQUIT` | `create core image` | `quit program`
4 | ```SIGILL` | `create core image` | `illegal instruction`
5 | ```SIGTRAP` | `create core image` | `trace trap`
6 | ```SIGABRT` | `create core image` | abort(3) call (formerly ```SIGIOT`)
7 | ```SIGEMT` | `create core image` | `emulate instruction executed`
8 | ```SIGFPE` | `create core image` | `floating-point exception`
9 | ```SIGKILL` | `terminate process` | `kill program (cannot be caught or ignored)`
10 | ```SIGBUS` | `create core image` | `bus error`
11 | ```SIGSEGV` | `create core image` | `segmentation violation`
12 | ```SIGSYS` | `create core image` | `invalid system call argument`
13 | ```SIGPIPE` | `terminate process` | `write to a pipe with no reader`
14 | ```SIGALRM` | `terminate process` | `real-time timer expired`
15 | ```SIGTERM` | `terminate process` | `software termination signal`
16 | ```SIGURG` | `discard signal` | `urgent condition present on socket`
17 | ```SIGSTOP` | `stop process` | `stop (cannot be caught or ignored)`
18 | ```SIGTSTP` | `stop process` | `stop signal generated from keyboard`
19 | ```SIGCONT` | `discard signal` | `continue after stop`
20 | ```SIGCHLD` | `discard signal` | `child status has changed`
21 | ```SIGTTIN` | `stop process` | `background read attempted from control terminal`
22 | ```SIGTTOU` | `stop process` | `background write attempted to control terminal`
23 | ```SIGIO` | `discard signal` | `I/O is possible on a descriptor (see` fcntl(2))
24 | ```SIGXCPU` | `terminate process` | `CPU time limit exceeded (see` setrlimit(2))
25 | ```SIGXFSZ` | `terminate process` | `file size limit exceeded (see` setrlimit(2))
26 | ```SIGVTALRM` | `terminate process` | `virtual time alarm (see` setitimer(2))
27 | ```SIGPROF` | `terminate process` | `profiling timer alarm (see` setitimer(2))
28 | ```SIGWINCH` | `discard signal` | `window size change`
29 | ```SIGINFO` | `discard signal` | `status request from keyboard`
30 | ```SIGUSR1` | `terminate process` | `user-defined signal 1`
31 | ```SIGUSR2` | `terminate process` | `user-defined signal 2`
32 | ```SIGPWR` | `discard signal` | `power failure/restart`

A function that is async-signal-safe is either reentrant or non-interruptible by signals. This means that they can be used in signal handlers and in the child of threaded programs after doing fork(2).

The following functions are async-signal-safe. Any function not listed below is unsafe to use in signal handlers.

_Exit(2), _exit(2), abort(3), accept(2), access(2), alarm(3), bind(2), cfgetispeed(3), cfgetospeed(3), cfsetispeed(3), cfsetospeed(3), chdir(2), chmod(2), chown(2), clock_gettime(2), close(2), connect(2), creat(3), dup(2), dup2(2), execle(3), execve(2), fchmod(2), fchown(2), fcntl(2), fdatasync(2), fork(2), fpathconf(2), fstat(2), fsync(2), ftruncate(2), getegid(2), geteuid(2), getgid(2), getgroups(2), getpeername(2), getpgrp(2), getpid(2), getppid(2), getsockname(2), getsockopt(2), getuid(2), kill(2), link(2), listen(2), lseek(2), lstat(2), mkdir(2), mkfifo(2), open(2), pathconf(2), pause(3), pipe(2), poll(2), raise(3), read(2), readlink(2), recv(2), recvfrom(2), recvmsg(2), rename(2), rmdir(2), select(2), sem_post(3), send(2), sendmsg(2), sendto(2), setgid(2), setpgid(2), setsid(2), setsockopt(2), setuid(2), shutdown(2), sigaction(2), sigaddset(3), sigdelset(3), sigemptyset(3), sigfillset(3), sigismember(3), sleep(3), signal(3), sigpause(3), sigpending(2), sigprocmask(2), sigset(3), sigsuspend(2), sockatmark(3), socket(2), socketpair(2), stat(2), symlink(2), sysconf(3), tcdrain(3), tcflow(3), tcflush(3), tcgetattr(3), tcgetpgrp(3), tcsendbreak(3), tcsetattr(3), tcsetpgrp(3), time(3), timer_getoverrun(2), timer_gettime(2), timer_settime(2), times(3), umask(2), uname(3), unlink(2), utime(3), wait(2), waitpid(2), write(2).

### STANDARDS

These signals conform to ISO/IEC 9945-1:1990 (``POSIX.1'') , with the exception of ```SIGTRAP`, ```SIGEMT`, ```SIGBUS`, ```SIGSYS`, ```SIGURG`, ```SIGIO`, ```SIGXCPU`, ```SIGXFSZ`, ```SIGVTALRM`, ```SIGPROF`, ```SIGWINCH`, and ```SIGINFO` which are Berkeley extensions (available on most NsBSD-derived systems), and ```SIGPWR` which comes from System V.

### HISTORY

```SIGPWR` was introduced in NetBSD1.4.

### NOTES

The current NetBSD kernel never generates the ```SIGPWR` signal.

### SEE ALSO

kill(1), kill(2), ptrace(2), sigaction(2), sigaltstack(2), sigprocmask(2), sigstack(2), sigsuspend(2), fpgetmask(3), fpsetmask(3), setjmp(3), sigblock(3), siginterrupt(3), signal(3), sigpause(3), sigsetmask(3), sigsetops(3), tty(4)