svcadm(1M)을 검색하려면 섹션에서 1M 을 선택하고, 맨 페이지 이름에 svcadm을 입력하고 검색을 누른다.
sigqueue(3c)
Standard C Library Functions sigqueue(3C)
NAME
sigqueue - queue a signal to a process
SYNOPSIS
#include <sys/types.h>
#include <signal.h>
int sigqueue(pid_t pid, int signo, const union sigval value);
int sigqueue_wait(pid_t pid, int signo, const union sigval value,
const struct timespec *timeout);
DESCRIPTION
The sigqueue() and sigqueue_wait() functions cause the signal specified
by signo to be sent with the value specified by value to the process
specified by pid. If signo is 0 (the null signal), error checking is
performed but no signal is actually sent. The null signal can be used
to check the validity of pid.
The conditions required for a process to have permission to queue a
signal to another process are the same as for the kill(2) function.
The sigqueue() function returns immediately. In contrast,
sigqueue_wait() will wait until enough resources become available to
queue the signal if the caller has the maximum number of queued signals
allowed per process pending. If the timeout argument is not NULL,
sigqueue_wait() will wait up to the specified time for the necessary
resources to become available.
If SA_SIGINFO is set for signo and if the resources were available to
queue the signal, the signal is queued and sent to the receiving
process. If SA_SIGINFO is not set for signo, then signo is sent at
least once to the receiving process; it is unspecified whether value
will be sent to the receiving process as a result of this call.
If the value of pid causes signo to be generated for the sending
process, and if signo is not blocked for the calling thread and if no
other thread has signo unblocked or is waiting in a sigwait(2) function
for signo, either signo or at least the pending, unblocked signal will
be delivered to the calling thread before the sigqueue() function
returns. Should any of multiple pending signals in the range SIGRTMIN
to SIGRTMAX be selected for delivery, it will be the lowest numbered
one. The selection order between realtime and non-realtime signals, or
between multiple pending non-realtime signals, is unspecified.
RETURN VALUES
Upon successful completion, the specified signal will have been queued,
and the sigqueue() and sigqueue_wait() functions return 0. Otherwise,
the functions return −1 and set errno to indicate the error.
ERRORS
The sigqueue() and sigqueue_wait() functions will fail if:
EAGAIN No resources are available to queue the signal within the
specified time, if any. The process has already queued its
maximum number of signals that are still pending at the
receiver(s), or a system wide resource limit has been
exceeded. The maximum number of outstanding queued signals
that a process can have is defined by its process.max-
siqueue-size resource control.
EINVAL The value of signo is an invalid or unsupported signal number
or the timeout argument specifies an invalid time.
EPERM The process does not have the appropriate privilege to send
the signal to the receiving process.
ESRCH The process pid does not exist.
The sigqueue_wait() function will fail if:
EFAULT The timeout argument to sigqueue_wait() is an invalid
address.
EINTR The sigqueue_wait() function was interrupted while waiting.
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
TRIBUTE VALUE _ Interface StabilityCommitted _ MT-LevelAsync-Signal-
Safe _ StandardSee standards(7).
SEE ALSO
kill(2), pthread_kill(3C), pthread_sigqueue(3C), sigwaitinfo(3C), sig‐
info.h(3HEAD), signal.h(3HEAD), attributes(7), resource-controls(7),
standards(7)
Oracle Solaris 11.4 17 Mar 2015 sigqueue(3C)