Name
sigqueue — queue a signal and data to a process
Synopsis
#include <signal.h>
int
sigqueue( |
pid_t |
pid, |
| |
int |
sig, |
| |
const union sigval
|
value); |
DESCRIPTION
sigqueue() sends the signal
specified in sig to
the process whose PID is given in pid. The permissions required
to send a signal are the same as for kill(2). As with kill(2), the null signal
(0) can be used to check if a process with a given PID
exists.
The value argument
is used to specify an accompanying item of data (either an
integer or a pointer value) to be sent with the signal, and
has the following type:
If the receiving process has installed a handler for this
signal using the SA_SIGINFO
flag to sigaction(2), then it can
obtain this data via the si_value field of the
siginfo_t structure
passed as the second argument to the handler. Furthermore,
the si_code field
of that structure will be set to SI_QUEUE.
RETURN VALUE
On success, sigqueue()
returns 0, indicating that the signal was successfully queued
to the receiving process. Otherwise −1 is returned and
errno is set to indicate the
error.
ERRORS
- EAGAIN
-
The limit of signals which may be queued has been
reached. (See signal(7) for further
information.)
- EINVAL
-
sig was
invalid.
- EPERM
-
The process does not have permission to send the
signal to the receiving process. For the required
permissions, see kill(2).
- ESRCH
-
No process has a PID matching pid.
CONFORMING TO
POSIX.1-2001
NOTES
If this function results in the sending of a signal to the
process that invoked it, and that signal was not blocked by
the calling thread, and no other threads were willing to
handle this signal (either by having it unblocked, or by
waiting for it using sigwait(3)), then at least some
signal must be delivered to this thread before this function
returns.
SEE ALSO
kill(2), sigaction(2), signal(2), sigwait(3), signal(7)
Copyright (c) 2002 Michael Kerrisk <mtk-manpages@gmx.net>
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
Since the Linux kernel and libraries are constantly changing, this
manual page may be incorrect or out-of-date. The author(s) assume no
responsibility for errors or omissions, or for damages resulting from
the use of the information contained herein.
Formatted or processed versions of this manual, if unaccompanied by
the source, must acknowledge the copyright and authors of this work.
added note on self-signalling, aeb, 2002-06-07
added note on CAP_KILL, mtk, 2004-06-16
|