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 p1003.1-90, with the exception of SIGTRAP, SIGEMT, SIGBUS, SIGSYS, SIGURG, SIGIO, SIGXCPU, SIGXFSZ, SIGVTALRM, SIGPROF, SIGWINCH, and SIGINFO which are Berkeley extensions (available on most BSD-derived systems), and SIGPWR which comes from System V.

HISTORY
SIGPWR was introduced in NetBSD 1.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)