sigsendset(2)




NAME

     sigsend, sigsendset - send a signal to a process or a  group
     of processes


SYNOPSIS

     #include <signal.h>

     int sigsend(idtype_t idtype, id_t id, int sig);

     int sigsendset(procset_t *psp, int sig);


DESCRIPTION

     The sigsend() function 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  0 or one  of  the
     values  listed in signal(3HEAD). If sig is  0 (the null sig-
     nal), 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  saved 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  P_PID, sig is sent to the process with process
     ID id.

     If idtype is  P_PGID, sig is sent to all processes with pro-
     cess group ID id.

     If idtype is  P_SID, sig is sent to all processes with  ses-
     sion ID id.

     If idtype is  P_TASKID, sig is sent to  all  processes  with
     task ID id.

     If idtype is  P_UID, sig is sent to any process with  effec-
     tive user ID id.

     If idtype is  P_GID, sig is sent to any process with  effec-
     tive group ID id.

     If idtype is  P_PROJID, sig is sent to any process with pro-
     ject ID id.

     If idtype is  P_CID, sig is sent to any process with
      scheduler class ID id (see priocntl(2)).

     If idtype is  P_ALL, sig is sent to all processes and id  is
     ignored.
     If id is  P_MYID, 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  P_PID.

     The sigsendset() function 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 procset_t, defined in
     <sys/procset.h>, which includes the following members:

     idop_t    p_op;
     idtype_t  p_lidtype;
     id_t      p_lid;
     idtype_t  p_ridtype;
     id_t      p_rid;

     The p_lidtype and p_lid members specify the ID type  and  ID
     of  one  ("left")  set of processes; the p_ridtype and p_rid
     members 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(). The p_op member speci-
     fies  the  operation  to  be  performed  on  the two sets of
     processes to get the set of processes  the  function  is  to
     apply  to.  The valid values for p_op and the processes they
     specify are:

     POP_DIFF
           Set difference:  processes in  left  set  and  not  in
           right set.

     POP_AND
           Set intersection: processes in  both  left  and  right
           sets.

     POP_OR
           Set union: processes in either left or  right  set  or
           both.

     POP_XOR
           Set exclusive-or: processes in left or right  set  but
           not in both.


RETURN VALUES

     Upon successful completion, 0 is return.  Otherwise,  -1  is
     returned and errno is set to indicate the error.


ERRORS

     The sigsend() and sigsendset() functions will fail if:

      EINVAL
           The sig argument is not a valid signal number, or  the
           idtype argument is not a valid idtype field.

     EINVAL
           The sig argument is  SIGKILL, idtype is  P_PID and  id
           is  1 (proc1).

     EPERM The effective user  of  the  calling  process  is  not
           superuser  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.

     ESRCH No process can be found corresponding to  that  speci-
           fied by id and idtype.

     The  sigsendset() function will fail if:

      EFAULT
           The psp argument points to an illegal address.


SEE ALSO

     kill(1),  getpid(2),   kill(2),   priocntl(2),   signal(3C),
     signal(3HEAD)


Man(1) output converted with man2html