sigsend(2) 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(idtype, id, sig)
idtypet idtype;
idt id;
int sig;
int sigsendset(psp, sig)
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 speci-
fied 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 pro-
cess, 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 effec-
tive user ID id.
If idtype is PGID, sig is sent to any process with effec-
tive group ID id.
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.
Page 1 CX/UX Programmer's Reference Manual
sigsend(2) sigsend(2)
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 sig-
nals 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:
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
RETURN VALUE
On success, sigsend returns zero. On failure, it returns -1
and sets errno to indicate the error.
ERRORS
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
(init).
Page 2 CX/UX Programmer's Reference Manual
sigsend(2) sigsend(2)
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), killpg(2), setsid(2), sig-
nal(2), signal(5).
kill(1) in the CX/UX User's Reference Manual.
Page 3 CX/UX Programmer's Reference Manual