Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ sigsend(2) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

kill(1)

getpgrp(2)

getpid(2)

kill(2)

priocntl(2)

setpgid(2)

nal(2)

signal(5)

sigsend(2)                                                       sigsend(2)

NAME
     sigsend, sigsendset - send a signal to a process or 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 speci-
     fied 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 effec-
     tive user ID of the sending process is superuser, or sig is SIGCONT
     and the sending process has the same session ID as the receiving pro-
     cess.

     The possible values of idtype have the following effects:

     PPID   sig is sent to the process with process ID id.

     PPPID  sig is sent to the parent process and id is ignored.

     PPGID  sig is sent to any process with process group ID id.

     PSID   sig is sent to any process with session ID id.

     PUID   sig is sent to any process with effective user ID id.

     PGID   sig is sent to any process with effective group ID id.

     PCID   sig is sent to any process with scheduler class ID id [see
             priocntl(2)].

     PALL   sig is sent to all processes and id is ignored.

     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.






Page 1                       Reliant UNIX 5.44                Printed 11/98

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;
            dtypet      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 apply:

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










Page 2                       Reliant UNIX 5.44                Printed 11/98

sigsend(2)                                                       sigsend(2)

     In addition, sigsendset() fails if:

     EFAULT  psp points outside the process' allocated address space.

RESULT
     On success, sigsend() returns 0. On failure, it returns -1 and sets
     errno to indicate the error.

SEE ALSO
     kill(1), getpgrp(2), getpid(2), kill(2), priocntl(2), setpgid(2), sig-
     nal(2), signal(5).











































Page 3                       Reliant UNIX 5.44                Printed 11/98

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