sigqueue

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
SIGQUEUE(2)		  Linux Programmer’s Manual		  SIGQUEUE(2)



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:

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

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 sig-
       wait(3)), then at least some signal must be delivered to	 this  thread
       before this function returns.

CONFORMING TO
       POSIX 1003.1-2001

SEE ALSO
       kill(2), sigaction(2), signal(2), sigwait(3), signal(7)



Linux 2.4.18			  2002-06-07			  SIGQUEUE(2)