Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ sigsendset(2) — svr4 — mips UMIPS RISC/os 5.01

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-SVR4)     RISC/os Reference Manual      SIGSEND(2-SVR4)



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
     superuser, 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 any process with process
     group ID id.

     If idtype is P_SID, sig is sent to any process with session
     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_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.





                        Printed 11/19/92                   Page 1





SIGSEND(2-SVR4)     RISC/os Reference Manual      SIGSEND(2-SVR4)



     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.

     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 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;

     p_lidtype and p_lid specify the ID type and ID of one (left)
     set of processes; p_ridtype and p_rid 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.  p_op 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 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

     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 BP_PID 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
                    superuser, and its real or effective user ID



 Page 2                 Printed 11/19/92





SIGSEND(2-SVR4)     RISC/os Reference Manual      SIGSEND(2-SVR4)



                    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), 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.




































                        Printed 11/19/92                   Page 3



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