| Linux / Unix Command: sigqueue |
NAME
sigqueue - queue a signal and data to a processSYNOPSIS
#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:
union sigval {
int sival_int;
void *sival_ptr;
};
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 proces. 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.
- ESRCH
- No process has a PID matching pid.
- EPERM
- The process does not have permission to send the signal to the receiving process. (See kill(2) for further information.)
SEE ALSO
kill(2), sigaction(2), signal(2), sigwait(3), signal(7)
Important: Use the man command (% man) to see how a command is used on your particular computer.

