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)

getpid(2)

getpgrp(2)

kill(2)

priocntl(2)

setpgid(2)

signal(2)

signal(5)

sigsend(2)                                                       sigsend(2)

NAME
     sigsend, sigsendset - Signal an Prozeß/Prozeßgruppe senden

SYNTAX
     #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);

BESCHREIBUNG
     sigsend() sendet ein Signal an einen Prozeß oder an eine Prozeßgruppe,
     die durch id und idtype angegeben wird. Das zu sendende Signal wird
     durch sig angegeben und ist entweder Null oder einer der unter
     signal(5) definierten Werte. Ist sig gleich Null (das Nullsignal),
     geschieht eine Fehlerüberprüfung, aber es wird kein Signal gesendet.
     Dies dient dazu, um die Gültigkeit von id und idtype zu überprüfen.

     Die reale oder effektive Benutzernummer des sendenden Prozesses muß
     mit der realen oder effektiven Benutzernummer des empfangenden Prozes-
     ses übereinstimmen, es sei denn, die effektive Benutzernummer des sen-
     denden Prozesses ist die des Systemverwalters, oder sig ist SIGCONT
     und der sendende Prozeß hat dieselbe Sitzungsnummer wie der empfan-
     gende Prozeß.

     Die möglichen Werte für idtype haben folgende Auswirkung:

     PPID     sig wird an den Prozeß mit der Nummer id gesendet.

     PPPID    sig wird an den Vaterprozeß gesendet, und id wird ignoriert.

     PPGID    sig wird an jeden Prozeß mit der Prozeßgruppennummer id
               gesendet.

     PSID     sig wird an jeden Prozeß mit der Sitzungsnummer id gesendet.

     PUID     sig wird an jeden Prozeß mit der effektiven Benutzernummer
               id gesendet.

     PGID     sig wird an jeden Prozeß mit der effektiven Gruppennummer id
               gesendet.

     PCID     sig wird an jeden Prozeß mit der Verwaltungsklassennummer id
               gesendet [siehe priocntl(2)].

     PALL     sig wird an alle Prozesse gesendet, und id wird ignoriert.

     PMYID    der Wert id wird vom aufrufenden Prozeß übernommen.





Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

sigsend(2)                                                       sigsend(2)

     Der Prozeß mit der Prozeßnummer 0 ist immer ausgeschlossen. Der Prozeß
     mit der Prozeßnummer 1 wird ausgeschlossen, es sei denn idtype ist
     gleich PPID.

     sigsendset() bietet eine alternative Schnittstelle zum Senden von Sig-
     nalen an Prozeßmengen. Diese Funktion sendet Signale an Prozeßmengen,
     die durch psp angegeben werden. psp ist dabei ein Zeiger auf eine
     Struktur vom Typ procsett, die in der Datei sys/procset.h definiert
     wird und die folgenden Komponenten enthält:

          idopt       pop;
          dtypet      plidtype;
          idt         plid;
          idtypet     pridtype;
          idt         prid;

     plidtype und plid geben den ID-Typ und die ID einer ("linken") Pro-
     zeßmenge an; pridtype und prid geben den ID-Typ und die ID einer
     ("rechten") Prozeßmenge an. ID-Typen und IDs werden genau wie bei den
     Argumenten idtype und id im Systemaufruf sigsend angegeben. pop gibt
     die Operation an, welche mit den beiden Prozeßmengen ausgeführt werden
     soll, um eine Prozeßmenge zu erhalten, auf die schließlich der System-
     aufruf angewendet wird. Die gültigen Werte für pop und die angegebe-
     nen Prozesse sind:

     POPDIFF   Differenz: Prozesse in der linken und nicht in der rechten
                Menge.

     POPAND    Schnittmenge: Prozesse in der linken und rechten Menge.

     POPOR     Vereinigungsmenge: Prozesse in der linken oder rechten oder
                in beiden Mengen.

     POPXOR    Exklusiv-ODER: Prozesse in der linken oder der rechten
                Menge, aber nicht in beiden.

     sigsend() und sigsendset() schlagen fehl, wenn wenigstens eine der
     folgenden Bedingungen gegeben ist:

     EINVAL     sig ist keine gültige Signalnummer.

     EINVAL     idtype enthält keinen gültigen Feldwert.

     EINVAL     sig ist SIGKILL, idtype ist gleich PPID und id ist 1
                (proc1).

     ESRCH      Es konnten keine Prozesse gefunden werden, welche id und
                idtype entsprechen.






Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

sigsend(2)                                                       sigsend(2)

     EPERM      Die Benutzernummer des sendenden Prozesses ist nicht die
                des Systemverwalters, und die reale oder effektive Benut-
                zernummer entspricht nicht der realen oder effektiven
                Benutzernummer des empfangenden Prozesses, und der aufru-
                fende Prozeß sendet nicht das Signal SIGCONT an einen Pro-
                zeß aus derselben Sitzung.

     sigsendset() schlägt außerdem fehl:

     EFAULT     psp weist über den zugewiesenen Adreßraum des Prozesses
                hinaus.

ERGEBNIS
     Bei Erfolg gibt sigsend() 0 zurück. Bei Fehler wird -1 zurückgegeben
     und errno gesetzt, um den Fehler anzuzeigen.

SIEHE AUCH
     kill(1), getpid(2), getpgrp(2), kill(2), priocntl(2), setpgid(2),
     signal(2), signal(5).



































Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

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