Index Index for
Section 3
Index Alphabetical
listing for S
Bottom of page Bottom of
page

sigqueue(3)

NAME

sigqueue - Queues a signal and data to a running process

SYNOPSIS

#include <signal.h> int sigqueue ( pid_t pid, int signo, const union sigval value);

LIBRARY

Realtime Library (librt.so, librt.a)

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 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).

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.

SEE ALSO

Headers: siginfo(5) Functions: kill(2), sigaction(2), sysconf(3) Guide to Realtime Programming

Index Index for
Section 3
Index Alphabetical
listing for S
Top of page Top of
page