Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ sigintrp(3) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

sigaction(2)

signal(2)

sigblock(3)

sigpause(3)

sigsetmask(3)

sigvec(3)

signal(3-ucb)

siginterrupt(3)         (BSD Compatibility Package)         siginterrupt(3)

NAME
     siginterrupt - Unterbrechen von Systemaufrufen durch Signale zulassen

SYNTAX
     /usr/ucb/cc [flag ...] file ... -lucb

     #include <signal.h>

     int siginterrupt(int sig, int flag);

BESCHREIBUNG
     siginterrupt wird verwendet, um das Neustartverhalten von Systemaufru-
     fen zu ändern, wenn der Systemaufruf durch das angegebene Signal
     unterbrochen wird. Hat das Flag den Wert (0), werden Systemaufrufe neu
     gestartet, wenn sie durch das angegebene Signal unterbrochen werden,
     und noch keine Daten übertragen wurden. Der Neustart des Systenmauf-
     rufs entspricht dem Standardverhalten bei Verwendung der Routine
     signal.

     Die Funktion siginterrupt() wird verwendet, um das Neustartverhalten
     einer Funktion zu ändern, wenn diese durch das angegebene Signal
     unterbrochen wird. Die Funktion siginterrupt(sig, flag) hat dieselbe
     Auswirkung wie folgende Angaben:

          siginterrupt(int sig, int flag) {
              int ret;
              struct sigaction act;

              (void) sigaction(sig, NULL, &act);
              if (flag)
                  act.saflags &= ~SARESTART;
              else
                  act.saflags |= SARESTART;
              ret = sigaction(sig, &act, NULL);
              return ret;
          }

     Hat das Flag den Wert (1), wird ein Neustart des Systemaufrufs deakti-
     viert. Wenn ein Systemaufruf durch das angegebene Signal unterbrochen
     wird und noch keine Daten übertragen wurden, gibt der Systemaufruf -1
     zurück und setzt errno auf EINTR. Unterbrochene Systemaufrufe, die
     bereits mit der Übertragung von Daten begonnen haben, geben die Menge
     der tatsächlich übertragenen Daten zurück.

     Wird während der Ausführung einer Routine zur Signalbehandlung
     siginterrupt aufgerufen, wird die neue Aktion erst beim nächsten auf-
     gefangenen Signal ausgeführt.

FEHLER
     Die Funktion siginterrupt() schlägt bei folgender Bedingung fehl:

     EINVAL    Das Argument sig ist keine gültige Signalnummer.



Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

siginterrupt(3)         (BSD Compatibility Package)         siginterrupt(3)

RÜCKGABEWERT
     Der Wert 0 zeigt an, daß der Aufruf erfolgreich war. Der Wert -1 zeigt
     an, daß eine ungültige Signalnummer angegeben wurde.

HINWEISE
     Die Funktion siginterrupt() unterstützt Programme, die für ältere
     Systemschnittstellen geschrieben wurden. Wenn eine portierbare Anwen-
     dung geschrieben oder neu geschrieben wird, sollte die Funktion
     sigaction() mit dem Flag SARESTART anstelle von siginterrupt() ver-
     wendet werden.

     Diese Bibliotheksroutine verwendet eine Erweiterung des Systemaufrufs
     sigvec, die in BSD 4.2 nicht verfügbar ist, und sollte daher nicht
     verwendet werden, wenn das Programm abwärts kompatibel sein muß.

SIEHE AUCH
     sigaction(2), signal(2), sigblock(3), sigpause(3), sigsetmask(3),
     sigvec(3), signal(3-ucb).




































Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

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