Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

getpid(2)

getpgrp(2)

kill(1)

kill(2)

setpid(2)

signal(2)

signal(5)



sigsend(2)                     DG/UX R4.11MU05                    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_t idtype, id_t id, int sig);

       int sigsendset(procset_t *psp, int sig);

   where:
       idtype P_PID, P_PGID, P_SID, P_UID, P_GID, P_CID, or P_ALL,
       id     An identification number or P_MYID
       psp    A structure of type procset_t defined in procset.h
       sig    A number or name specifying a signal

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 SIGNULL or one of the values listed in signal(5).  If sig is
       SIGNULL (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, or sig is SIGCONT
       and the sending process has the same session ID as the receiving
       process, or the sending process has appropriate privilege.  On a
       generic DG/UX system, appropriate privilege is granted by having an
       effective UID of 0 (root). See the appropriate_privilege(5) man page
       for more information.

       On a system with DG/UX information security, appropriate privilege is
       granted by having one or more specific capabilities enabled in the
       effective capability set of the user.  See cap_defaults(5) for the
       default capabilities for this command.

       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 effective user ID
       id.

       If idtype is P_GID, sig is sent to any process with effective group
       ID id.

       If idtype is P_CID, sig is sent to any process with scheduler class
       ID id.

       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.

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

ACCESS CONTROL
       The real or effective user ID of the sending process must match the
       real or effective user ID of the receiving process, or sig is SIGCONT
       and the sending process has the same session ID as the receiving
       process, or the sending process has appropriate privilege.  On a
       generic DG/UX system, appropriate privilege is granted by having an
       effective UID of 0 (root). See the appropriate_privilege(5) man page
       for more information.

       On a system with DG/UX information security, appropriate privilege is
       granted by having one or more specific capabilities enabled in the
       effective capability set of the user.  See cap_defaults(5) for the
       default capabilities for this command.

RETURN VALUE
       On success, sigsend sigsendset return zero.  On failure, it returns
       -1 and sets errno to indicate the error.

       Errno may be set to the following error code:

       EINVAL         sig is not a valid signal number.

       EINVAL         idtype is not a valid idtype field.

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

       ESRCH          No process can be found corresponding to that
                      specified by id and idtype.

       EPERM          The process does not have permissions to send the
                      signal to the receiving process.

       In addition, sigsendset may set errno to

       EFAULT         psp points outside the process's allocated address
                      space.

SEE ALSO
       getpid(2), getpgrp(2), kill(1), kill(2), setpid(2), signal(2),
       signal(5).


Licensed material--property of copyright holder(s)

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