sigsend, sigsendset - Send a signal to one or more processes
const procset_t *psetp,
Standard C Library (libc)
Specifies a process or group of processes to which a signal
Specifies how the
parameter is to
Specifies the signal to be sent.
Points to a
defines a set of processes.
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 processes 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 parameter is set to P_ALL, all eligible processes are targets of this operation, 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.
parameter points the
This structure is described in detail on the
Upon successful completion, both functions return the value zero (0). Otherwise, a value of
is set to indicate the error.
If any of the following conditions occur, the
The value specified by the
is not valid.
The value specified by the
is not zero and is not a valid signal.
parameter is set to SIGKILL,
parameter is set to P_PID, and the
parameter is set to the process ID of a special system process.
parameter specifies the process
ID of a special system process.
parameter of the
function, or the
members of the structure pointed at by the
parameter for the
The calling process lacks sufficient privilege, 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
idtype, or the
parameters do not
Functions: kill(2), setpgid(2), setsid(2), sigaction(2)
Files: procset(4), signal(4)