Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

alarm(2)

sleep(3)

usleep(3)

gettimeofday(3C)

sleep(3C)

signal(5)

time(5)

getitimer(3C)                                                 getitimer(3C)

NAME
     getitimer, setitimer - Intervallzeitgeber lesen und setzen

SYNTAX
     #include <sys/time.h>

     int getitimer(int which, struct itimerval *value);

     int setitimer(int which, struct itimerval *value,
                   struct itimerval *ovalue);

BESCHREIBUNG
     Das System bietet jedem Prozeß drei Intervallzeitgeber an, die in der
     Datei sys/time.h vereinbart werden. Der Aufruf getitimer() speichert
     den aktuellen Wert des Timers (Zeitgebers) which in der Struktur, auf
     die value zeigt. Der Aufruf setitimer() setzt den Wert von which auf
     den Wert, der in der Struktur steht, auf die value zeigt; ist ovalue
     nicht gleich NULL, wird der vorherige Wert des Timers in der Struktur
     abgelegt, auf die ovalue zeigt.

     Die Einstellung eines Timers wird durch die Struktur itimerval (siehe
     gettimeofday(3C) für die Definition von timeval) definiert, welche die
     folgenden Komponenten enthält:

          struct timeval   itinterval;    /* Timer-Intervall */
          struct timeval   itvalue;       /* aktueller Wert */

     Wenn itvalue ungleich Null ist, wird der Zeitpunkt des nächsten
     Ablaufens des Timers angegeben. Wenn itinterval ungleich Null ist,
     wird ein Wert angegeben, auf den itvalue gesetzt wird, wenn der Timer
     abläuft. Wird itvalue auf Null gesetzt, so wird der Timer deakti-
     viert, unabhängig vom Wert von itinterval. Das Setzen von itinterval
     auf Null deaktiviert den Timer nach seinem nächsten Ablauf (vorausge-
     setzt, daß itvalue ungleich Null ist).

     Sind Zeitwerte kleiner als die Auflösung der Systemuhr, so werden
     diese auf die Auflösung der Systemuhr gerundet.

     Die drei Timer sind:

     ITIMERREAL
          In Realzeit des Prozesses dekrementieren. Das Signal SIGALRM wird
          gesendet, wenn dieser Timer abläuft.

     ITIMERVIRTUAL
          In virtueller Prozeßzeit [Zeit des Prozesses im Benutzermodus
          (user mode)] dekrementieren. Dieser Timer läuft nur, wenn der
          Prozeß ausgeführt wird. Das Signal SIGVTALRM wird gesendet, wenn
          dieser Timer abläuft.






Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

getitimer(3C)                                                 getitimer(3C)

     ITIMERPROF
          Sowohl in virtueller Prozeßzeit als auch in Realzeit [Zeit des
          Prozesses im Benutzer- und im Systemmodus (user and sys mode)]
          dekrementieren. Dieser Timer dient Interpretern zur statistischen
          Profilerstellung der Ausführungszeit interpretierter Programme.
          Jedesmal, wenn der Timer ITIMERPROF abläuft, wird das Signal
          SIGPROF gesendet. Da dieses Signal Systemaufrufe des Prozesses
          unterbricht, müssen diejenigen Programme, die diesen Timer ver-
          wenden, darauf vorbereitet sein, die unterbrochenen Systemaufrufe
          zu wiederholen.

     Die Interaktion zwischen setitimer() und einem Aufruf von alarm(),
     sleep() oder usleep() ist undefiniert.

ERGEBNIS
     Wenn der Aufruf erfolgreich war, wird der Wert 0 zurückgegeben. Tritt
     ein Fehler auf, wird -1 zurückgegeben und der Fehlercode in die glo-
     bale Variable errno geschrieben.

     Unter der folgenden Bedingung schlagen die Funktionen getitimer() und
     setitimer() fehl und setzen errno auf den angegebenen Wert:

     EINVAL    Die angegebenen Sekunden sind größer als 100.000.000, die
               angegebenen Mikrosekunden sind größer oder gleich 1.000.000,
               oder der Parameter which wurde nicht erkannt.

HINWEISE
     Das Feld mit den Mikrosekunden darf keinen Wert enthalten, der gleich
     oder größer als eine Sekunde ist.

     setitimer() ist unabhängig vom Systemaufruf alarm().

     Benutzen Sie setitimer() nicht zusammen mit der sleep()-Routine. Ein
     Aufruf von sleep() nach setitimer() löscht die Informationen der Sig-
     nalbehandlungsroutine des Benutzers.

SIEHE AUCH
     alarm(2), sleep(3), usleep(3), gettimeofday(3C), sleep(3C), signal(5),
     systime(5), time(5).















Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

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