sigqueue - Queues a signal and data to a running process
#include <signal.h>
int sigqueue ( pid_t pid, int signo, const union sigval
value);
Realtime Library (librt.so, librt.a)
Specifies the ID of the target process. Specifies the
signal to be queued. If the signo parameter is 0 (the null
signal), error checking is performed but no signal is
sent. This can be used to check the validity of the pid
parameter. Specifies the application-defined value to be
queued to the receiving process.
The sigqueue function causes the signal specified by signo
to be sent with the value specified by value to the process
specified by pid.
The conditions required for a process to have permission
to queue a signal to another process are the same as for
the kill function.
If the call is successful, the signal is queued to the
specified process. If the process has the SA_SIGINFO
option enabled for the queued signal, the specified value
is delivered to its signal handler as the si_value field
of the siginfo parameter. Nonprivileged callers are
restricted in the number of signals they can have actively
queued. This per-process quota value can be returned with
sysconf(_SC_SIGQUEUE_MAX).
Upon successful completion, the sigqueue function returns
a value of 0 (zero). Otherwise, a value of -1 is returned
and errno is set to indicate the error.
If sigqueue fails, no signal is sent, and errno is set to
one of the following values: No resources are available to
queue the signal. The process has already queued
{SIGQUEUE_MAX} signals that are still pending at the
receiver(s), or a system-wide resource limit has been
exceeded. The signo parameter is not a valid signal number.
The signo parameter is SIGKILL, SIGSTOP, SIGTSTP, or
SIGCONT, and the pid parameter is 1 (process 1 -- init).
No process can be found corresponding to that specified by
the pid parameter. The real or saved user ID does not
match the real or effective user ID of the receiving process,
the calling process does not have appropriate privilege,
or the process is not sending a SIGCONT signal to
one of its session's processes.
Headers: siginfo(5)
Functions: kill(2), sigaction(2), sysconf(3)
Guide to Realtime Programming
sigqueue(3)
[ Back ] |