Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ sigsend(2) — Atari System V ue12

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

getpid(2)

getpgrp(2)

kill(2)

priocntl(2)

setpid(2)

signal(2)

signal(5)

kill(1)





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

         If idtype is PGID, sig is sent to any process with effective 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.




   7/91                                                                 Page 1









   sigsend(2)                                                       sigsend(2)


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

         In addition, sigsendset fails if:




   Page 2                                                                 7/91









   sigsend(2)                                                       sigsend(2)


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

   SEE ALSO
         getpid(2), getpgrp(2), kill(2), priocntl(2), setpid(2), signal(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.









































   7/91                                                                 Page 3





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