table of contents
other sections
GETITIMER(2) | Linux-Programmierhandbuch | GETITIMER(2) |
BEZEICHNUNG¶
getitimer, setitimer - Zeit eines Intervall-Zeitgebers abfragen oder setzenÜBERSICHT¶
#include <sys/time.h>int getitimer(int welcher, struct itimerval *aktueller wert);int setitimer(int welcher, const struct itimerval *neuer_wert, struct itimerval *alter_wert);
BESCHREIBUNG¶
Das System stellt jedem Prozess drei Intervall-Zeitgeber zur Verfügung, die in verschiedenen Zeitdomänen herunterzählen. Wenn der Zeitgeber abläuft, wird ein Signal an den Prozess gesandt und der Zeitgeber startet (möglicherweise) von vorne.- ITIMER_REAL
- zählt in Echtzeit zurück und liefert bei Ablauf SIGALRM.
- ITIMER_VIRTUAL
- zählt nur zurück, wenn der Prozess ausgeführt wird und liefert bei Ablauf SIGVTALRM.
- ITIMER_PROF
- zählt sowohl zurück, wenn der Prozess ausgeführt wird als auch, wenn das System für den Prozess tätig ist. Zusammen mit ITIMER_VIRTUAL kann dieser Zeitgeber ermitteln, wie lange eine Applikation sich im Benutzer- und im Kernel-Adressraum aufhält. Bei Ablauf wird SIGPROF geliefert.
struct itimerval { struct timeval it_interval; /* nächster Wert */ struct timeval it_value; /* aktueller Wert */ }; struct timeval { long tv_sec; /* Sekunden */ long tv_usec; /* Mikrosekunden */ };
Die Funktion getitimer() füllt die Struktur auf die aktueller_wert zeigt mit der aktuellen Einstellung für den durch welcher angegebenen Zeitgeber ( ITIMER_REAL, ITIMER_VIRTUAL oder ITIMER_PROF). Das Element it_value wird auf den Betrag der Zeit gesetzt, die auf dem Zeitgeber verblieben ist oder Null, wenn der Zeitgeber ausgeschaltet ist. Gleichermaßen wird it_interval auf den Rücksetzwert gesetzt.
RÜCKGABEWERT¶
Bei Erfolg wird Null zurückgegeben. Bei einem Fehler wird -1 zurückgegeben und errno entsprechend gesetzt.FEHLER¶
- EFAULT
- neuer_wert, alter_wert oder aktueller_wert sind keine gültigen Zeiger.
- EINVAL
- welcher ist weder ITIMER_REAL, ITIMER_VIRTUAL noch ITIMER_PROF oder (seit Linux 2.6.22) einer der tv_usec-Felder in in der Struktur, auf die neuer_wert zeigt, enthält einen Wert, der außerhalb des Bereichs 0 bis 999999 liegt.
KONFORM ZU¶
POSIX.1-2001, SVr4, 4.4BSD (dieser Aufruf erschien erstmalig in 4.2BSD). POSIX.1-2008 kennzeichnet getitimer() und setitimer() als veraltet und empfiehlt stattdessen die POSIX-Zeitgeber-API zu benutzen ( timer_gettime(2), timer_settime(2), etc.).ANMERKUNGEN¶
Ein Kindprozess, der mittels fork(2) erzeugt wurde. erbt nicht die Intervall-Zeitgeber seines Elternprozesses. Intervall-Zeitgeber werden über ein execve(2) konserviert.FEHLER¶
Das Generieren und Senden eines Signals sind eigenständig und nur eine Instanz von jedem der oben aufgelisteten Signale kann für einen Prozess anstehen. Unter sehr hoher Systemlast kann ein ITIMER_REAL-Zeitgeber ablaufen bevor das Signal von einem vorherigen Ablauf geliefert wurde. Das zweite Signal geht bei einem solchen Ereignis verloren.SIEHE AUCH¶
gettimeofday(2), sigaction(2), signal(2), timer_create(2), timerfd_create(2), time(7)KOLOPHON¶
Diese Seite ist Teil der Veröffentlichung 3.42 des Projekts Linux- man-pages. Eine Beschreibung des Projekts und Informationen, wie Fehler gemeldet werden können, finden sich unter http://www.kernel.org/doc/man-pages/.ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Chris Leick <c.leick@vollbio.de> erstellt.15. März 2009 | Linux |