sigsend(2)sigsend(2)NAME
sigsend, sigsendset - Send a signal to one or more processes
SYNOPSIS
#include <sys/types.h>
#include <sys/signal.h>
#include <sys/procset.h>
int sigsend(
idtype_t idtype,
id_t id,
int sig ); int sigsendset(
const procset_t *psetp,
int sig );
LIBRARY
Standard C Library (libc)
PARAMETERS
Specifies a process or group of processes to which a signal is sent.
Specifies how the id parameter is to be interpreted. Specifies the
signal to be sent. Points to a procset_t structure that defines a set
of processes.
DESCRIPTION
The sigsend function sends a signal to a group of processes specified
by the id and idtype parameters. The sig parameter specifies the signal
to be sent. It contains either a valid signal or a zero (0), which
indicates that no signal is to be sent, though the usual error checking
will still be performed.
To send the signal, the real or effective user IDs of the sending
process must match those of the receiving process, unless the sending
process has appropriate privileges, or the sig parameter is SIGCONT and
the receiving process is in the same session as the sender.
The id and the idtype parameters together select the target process(es)
according to the following rules: If the idtype parameter is set to
P_PID, the target process is the process whose process ID is equal to
(pid_t)id. If the idtype parameter is set to P_GID, the target pro‐
cesses are those whose effective group ID is equal to (gid_t)id. If
the idtype parameter is set to P_UID, the target processes are those
whose effective user ID is equal to (uid_t)id. If the idtype parameter
is set to P_PGID, the target processes are those whose process group ID
is equal to (pid_t)id. If the idtype parameter is set to P_SID, the
target processes are those whose session ID is equal to (pid_t)id. If
the idtype parameter is set to P_PPID, sig is sent to all children of
id. If the idtype parameter is set to P_CID, sig is sent to any
process whose scheduling class ID is equal to id. If the idtype param‐
eter is set to P_ALL, all eligible processes are targets of this opera‐
tion, and id is ignored. If the id parameter is set to P_MYID, the
value used for id is taken from the calling process.
The process having a process ID of (pid_t)0 is never a target, and the
process with a process ID of (pid_t)1 is targeted only if the idtype
parameter is equal to P_PID. In addition, certain system processes may
not be signalled.
The sigsendset function allows sending to a set of processes that is
constructed by a boolean logic operation performed on two sets of
potential target processes defined as described above for sigsend.
For the sigsendset function, the psetp parameter points the procset_t
structure. This structure is described in detail on the procset(4)
reference page.
RETURN VALUES
Upon successful completion, both functions return the value zero (0).
Otherwise, a value of -1 is returned, and errno is set to indicate the
error.
ERRORS
If any of the following conditions occur, the sigsend or sigsendset
function sets errno to the corresponding value: The value specified by
the idtype parameter is not valid. The value specified by the sig
parameter is not zero and is not a valid signal. The sig parameter is
set to SIGKILL, the idtype parameter is set to P_PID, and the id param‐
eter is set to the process ID of a special system process. The id
parameter specifies the process ID of a special system process. Either
the id parameter of the sigsend function, or the p_lid or p_rid members
of the structure pointed at by the psetp parameter for the sigsendset
function are out-of-range. The calling process lacks sufficient privi‐
lege, the real or effective user IDs do not match, and this invocation
is not sending SIGCONT to a process in the same session. The processes
specified by the id and idtype, or the psetp parameters do not exist.
SEE ALSO
Functions: kill(2), setpgid(2), setsid(2), sigaction(2)
Routines: sigset(3)
Files: procset(4), signal(4)sigsend(2)