sigsend(2) UNIX System V sigsend(2)
NAME
sigsend, sigsendset - send a signal to a process or a group of processes
SYNOPSIS
#include <sys/types.h>
#include <sys/signal.h>
#include <sys/procset.h>
int sigsend(idtypet idtype, idt id, int sig);
int sigsendset(procsett *psp, int sig);
DESCRIPTION
sigsend sends a signal to the process or group of processes specified by
id and idtype. The signal to be sent is specified by sig and is either
zero or one of the values listed in signal(5). If sig is zero (the null
signal), error checking is performed but no signal is actually sent.
This value can be used to check the validity of id and idtype.
The real or effective user ID of the sending process must match the real
or effective user ID of the receiving process, unless the effective user
ID of the sending process is super-user, or sig is SIGCONT and the
sending process has the same session ID as the receiving process.
If idtype is PPID, sig is sent to the process with process ID id.
If idtype is PPGID, sig is sent to any process with process group ID id.
If idtype is PSID, sig is sent to any process with session ID id.
If idtype is PUID, sig is sent to any process with effective user ID id.
If idtype is PGID, sig is sent to any process with effective group ID
id.
If idtype is PCID, sig is sent to any process with scheduler class ID id
[see priocntl(2)].
If idtype is PALL, sig is sent to all processes and id is ignored.
If id is PMYID, the value of id is taken from the calling process.
The process with a process ID of 0 is always excluded. The process with
a process ID of 1 is excluded unless idtype is equal to PPID.
sigsendset provides an alternate interface for sending signals to sets of
processes. This function sends signals to the set of processes specified
by psp. psp is a pointer to a structure of type procsett, defined in
sys/procset.h>, which includes the following members:
10/89 Page 1
sigsend(2) UNIX System V sigsend(2)
idopt pop;
idtypet plidtype;
idt plid;
idtypet pridtype;
idt prid;
plidtype and plid specify the ID type and ID of one (``left'') set of
processes; pridtype and prid specify the ID type and ID of a second
(``right'') set of processes. ID types and IDs are specified just as for
the idtype and id arguments to sigsend. pop specifies the operation to
be performed on the two sets of processes to get the set of processes the
system call is to apply to. The valid values for pop and the processes
they specify are:
POPDIFF set difference: processes in left set and not in right set
POPAND set intersection: processes in both left and right sets
POPOR set union: processes in either left or right set or both
POPXOR set exclusive-or: processes in left or right set but not in
both
sigsend and sigsendset fail if one or more of the following are true:
EINVAL sig is not a valid signal number.
EINVAL idtype is not a valid idtype field.
EINVAL sig is SIGKILL, idtype is PPID and id is 1 (proc1).
ESRCH No process can be found corresponding to that specified by
id and idtype.
EPERM The user ID of the sending process is not super-user, and
its real or effective user ID does not match the real or
effective user ID of the receiving process, and the
calling process is not sending SIGCONT to a process that
shares the same session.
In addition, sigsendset fails if:
EFAULT psp points outside the process's allocated address space.
SEE ALSO
getpid(2), getpgrp(2), kill(2), priocntl(2), setpid(2), signal(2),
signal(5).
kill(1) in the User's Reference Manual.
Page 2 10/89
sigsend(2) UNIX System V sigsend(2)
DIAGNOSTICS
On success, sigsend returns zero. On failure, it returns -1 and sets
errno to indicate the error.
10/89 Page 3