 |
Index for Section 3 |
|
 |
Alphabetical listing for S |
|
 |
Bottom of page |
|
sigqueue(3)
NAME
sigqueue - Queues a signal and data to a running process
LIBRARY
Realtime Library (librt.so, librt.a)
SYNOPSIS
#include <signal.h>
int sigqueue (
pid_t pid,
int signo,
const union sigval value);
PARAMETERS
pid Specifies the ID of the target process.
signo 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.
value Specifies the application-defined value to be queued to the
receiving process.
DESCRIPTION
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 flag 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).
RETURN VALUES
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.
ERRORS
If sigqueue fails, no signal is sent, and errno is set to one of the
following values:
[EAGAIN] 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.
[EINVAL] The signo parameter is not a valid signal number.
[EINVAL] The signo parameter is SIGKILL, SIGSTOP, SIGTSTP, or
SIGCONT, and the pid parameter is 1 (process 1 -- init).
[ESRCH] No process can be found corresponding to that specified by
the pid parameter.
[EPERM] 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.
RELATED INFORMATION
Headers: siginfo(5)
Functions: kill(2), sigaction(2), sysconf(3)
Guide to Realtime Programming
 |
Index for Section 3 |
|
 |
Alphabetical listing for S |
|
 |
Top of page |
|