The previous delta duplicated a significant amount of information

already found in the sigaction(2) manual.

As discussed with the committer of that delta, cross-reference the list
in sigaction(2) instead of duplicating the list of functions that are
safe for use within signal handlers.
This commit is contained in:
Sheldon Hearn 2001-07-24 11:37:33 +00:00
parent fd96447ad0
commit 745b20f712
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=80276

View File

@ -201,128 +201,10 @@ to the
function;
ignored signals remain ignored.
.Pp
The following functions are either reentrant or not interruptible
by signals and are async-signal safe.
Therefore applications may
invoke them, without restriction, from signal-catching functions:
.Pp
Base Interfaces:
.Pp
.Fn _exit ,
.Fn access ,
.Fn alarm ,
.Fn cfgetispeed ,
.Fn cfgetospeed ,
.Fn cfsetispeed ,
.Fn cfsetospeed ,
.Fn chdir ,
.Fn chmod ,
.Fn chown ,
.Fn close ,
.Fn creat ,
.Fn dup ,
.Fn dup2 ,
.Fn execle ,
.Fn execve ,
.Fn fcntl ,
.Fn fork ,
.Fn fpathconf ,
.Fn fstat ,
.Fn fsync ,
.Fn getegid ,
.Fn geteuid ,
.Fn getgid ,
.Fn getgroups ,
.Fn getpgrp ,
.Fn getpid ,
.Fn getppid ,
.Fn getuid ,
.Fn kill ,
.Fn link ,
.Fn lseek ,
.Fn mkdir ,
.Fn mkfifo ,
.Fn open ,
.Fn pathconf ,
.Fn pause ,
.Fn pipe ,
.Fn raise ,
.Fn read ,
.Fn rename ,
.Fn rmdir ,
.Fn setgid ,
.Fn setpgid ,
.Fn setsid ,
.Fn setuid ,
.Fn sigaction ,
.Fn sigaddset ,
.Fn sigdelset ,
.Fn sigemptyset ,
.Fn sigfillset ,
.Fn sigismember ,
.Fn signal ,
.Fn sigpending ,
.Fn sigprocmask ,
.Fn sigsuspend ,
.Fn sleep ,
.Fn stat ,
.Fn sysconf ,
.Fn tcdrain ,
.Fn tcflow ,
.Fn tcflush ,
.Fn tcgetattr ,
.Fn tcgetpgrp ,
.Fn tcsendbreak ,
.Fn tcsetattr ,
.Fn tcsetpgrp ,
.Fn time ,
.Fn times ,
.Fn umask ,
.Fn uname ,
.Fn unlink ,
.Fn utime ,
.Fn wait ,
.Fn waitpid ,
.Fn write .
.Pp
Realtime Interfaces:
.Pp
.Fn aio_error ,
.Fn clock_gettime ,
.Fn sigpause ,
.Fn timer_getoverrun ,
.Fn aio_return ,
.Fn fdatasync ,
.Fn sigqueue ,
.Fn timer_gettime ,
.Fn aio_suspend ,
.Fn sem_post ,
.Fn sigset ,
.Fn timer_settime .
.Pp
ANSI C Interfaces:
.Pp
.Fn strcpy ,
.Fn strcat ,
.Fn strncpy ,
.Fn strncat ,
and perhaps some others.
.Pp
Extension Interfaces:
.Pp
.Fn strlcpy ,
.Fn strlcat .
.Pp
All functions not in the above lists are considered to be unsafe
with respect to signals. That is to say, the behaviour of such
functions when called from a signal handler is undefined.
In general though, signal handlers should do little more than set a
flag; most other actions are not safe.
.Pp
As well, inside the signal handler it is also considered more safe to
make a copy the global variable
.Va errno
and restore it before returning from the signal handler.
See
.Xr sigaction 2
for a list of functions
that are considered safe for use in signal handler.
.Sh RETURN VALUES
The previous action is returned on a successful call.
Otherwise, SIG_ERR is returned and the global variable