Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ waitid(2) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

exec(2)

exit(2)

fork(2)

pause(2)

ptrace(2)

signal(2)

sigaction(2)

wait(2)

siginfo(5)

types(5)

wait(5)

waitid(2)                                                         waitid(2)

NAME
     waitid - Auf Statusänderung von Sohnprozessen warten

SYNTAX
     #include <sys/types.h>
     #include <wait.h>

     int waitid(idtypet idtype, idt id, siginfot *infop, int options);

BESCHREIBUNG
     Der aufrufende Prozeß wird durch waitid() so lange angehalten, bis
     einer der Sohnprozesse den Status ändert. Der aktuelle Status eines
     Sohnprozesses wird in der Struktur, auf die infop zeigt, aufgenommen.
     Wenn ein Sohnprozeß den Status vor dem Aufruf von waitid() geändert
     hat, kehrt waitid() sofort zurück.

     Die Argumente idtype und id geben an, auf welche Sohnprozesse waitid()
     warten soll.

     -  Wenn idtype gleich PPID ist, wartet waitid() auf den Sohnprozeß,
        der die Prozeß-ID (pidt)id hat.

     -  Wenn idtype gleich PPGID ist, wartet waitid() auf irgendeinen
        Sohnprozeß mit der Prozeßgruppen-ID (pidt)id.

     -  Wenn idtype gleich PALL ist, wartet waitid() auf irgendeinen Sohn-
        prozeß, und id wird ignoriert.

     Das Argument options wird verwendet, um die gewünschten Statusänderun-
     gen anzugeben, auf die waitid() warten soll. Die Statusänderungen wer-
     den durch bitweise ODER-Verknüpfung der folgenden Flags angegeben:

     WEXITED     Wartet darauf, daß Prozesse beendet werden (exit).

     WTRAPPED    Wartet darauf, daß ablaufverfolgte Prozesse auf Unterbre-
                 chungen stoßen oder einen Haltepunkt erreichen [siehe
                 ptrace(2)].

     WSTOPPED    Wartet auf und liefert den Prozeßstatus eines Sohnprozes-
                 ses zurück, der nach dem Empfang eines Signals angehalten
                 wurde.

     WCONTINUED  Liefert den Status für einen Sohnprozeß zurück, der ange-
                 halten und wieder aufgenommen wurde.

     WNOHANG     Kehrt sofort zurück, wenn keine Sohnprozesse vorliegen,
                 auf die gewartet wird.








Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

waitid(2)                                                         waitid(2)

     WNOWAIT     Der Prozeß, dessen Status in infop zurückgegeben wurde,
                 bleibt in einem Status, bei dem weiter auf den Prozeß
                 gewartet werden kann. Dies hat keine Auswirkung auf den
                 Status des Prozesses; auf den Prozeß kann nach Beendigung
                 dieses Aufrufs erneut gewartet werden.

     infop muß auf eine siginfot-Struktur zeigen, wie sie in siginfo(5)
     definiert wird. Das System trägt für siginfot den Status des Prozes-
     ses ein, auf den gewartet wird.

FEHLER
     Die folgenden Beschreibungen der Fehlercodes sind funktionsspezifisch.
     Eine allgemeingültige Beschreibung finden Sie in introprm2(2) bzw. in
     errno(5).

     waitid() schlägt bei folgenden Bedingungen fehl:

     EFAULT    infop zeigt auf eine ungültige Adresse.

     EINTR     waitid() wurde unterbrochen, weil der aufrufende Prozeß ein
               Signal empfing.

     EINVAL    Ein ungültiger Wert wurde für options übergeben.

     EINVAL    idtype und id geben eine ungültige Prozeßmenge an.

     ECHILD    Die Prozeßmenge, die durch idtype und id angegeben wurde,
               enthält keine Prozesse, auf die noch niemand wartet oder
               Prozesse, die nicht existieren.

ERGEBNIS
     Kehrt waitid() aufgrund einer Statusänderung eines Sohnprozesses
     zurück, wird der Wert 0 zurückgegeben. Ansonsten wird -1 zurückgelie-
     fert und errno gesetzt, um den Fehler anzuzeigen.

SIEHE AUCH
     exec(2), exit(2), fork(2), pause(2), ptrace(2), signal(2),
     sigaction(2), wait(2), siginfo(5), types(5), wait(5).
















Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

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