Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ sigsend(2) — NEWS-os 5.0.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

getpid(2)

getpgrp(2)

kill(2)

priocntl(2)

setpid(2)

nal(2)

signal(5)

kill(1)



sigsend(2)                SYSTEM CALLS                 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 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  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.




                                                                1





sigsend(2)                SYSTEM CALLS                 sigsend(2)



     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

     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.




                                                                2





sigsend(2)                SYSTEM CALLS                 sigsend(2)



     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), sig-
     nal(2), signal(5).  kill(1) in the User's Reference Manual.

DIAGNOSTICS
     On success, sigsend returns zero.  On failure, it returns -1
     and sets errno to indicate the error.











































                                                                3



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026