Provided by: manpages-de-dev_4.27.0-1_all 

BEZEICHNUNG
timer_getoverrun -Überlaufzähler für prozessbezogene POSIX-Timer erhalten
BIBLIOTHEK
Echtzeitbibliothek (librt, -lrt)
ÜBERSICHT
#include <time.h>
int timer_getoverrun(timer_t timerid);
Mit Glibc erforderliche Feature-Test-Makros (siehe feature_test_macros(7)):
timer_getoverrun():
_POSIX_C_SOURCE >= 199309L
BESCHREIBUNG
timer_getoverrun() liefert den »Überlaufzähler« für den durch timerid referenzierten Zähler zurück. Eine
Anwendung kann den Überlaufzähler für die Berechnung der genauen Anzahl der Timer-Abläufe verwenden, die
über eine angegebene Zeitdauer aufgetreten wären. Timer-Überläufe können sowohl beim Empfang von
Ablaufbenachrichtigungen mittels Signalen (SIGEV_SIGNAL) wie auch über Threads (SIGEV_THREAD) erfolgen.
Wenn Ablaufbenachrichtigungen über ein Signal ausgeliefert werden, können Überläufe wie folgt auftreten.
Unabhängig davon, ob ein Echtzeitsignal für die Timer-Benachrichtigung verwandt wird, stellt das System
höchstens ein Signal pro Timer in die Warteschlange. (Dies ist das von POSIX.1 spezifiziert Verhalten.
Die Alternative, ein Signal für jeden Timer-Ablauf in die Warteschlange zu stellen, könnte leicht in
einen Überlauf der erlaubten Beschränkungen für Signale in Warteschlangen auf dem System führen.)
Aufgrund von System-Scheduling-Verzögerungen oder aufgrund temporärer Blockierungen des Signals kann es
eine Verzögerung zwischen dem Zeitpunkt, zu dem das Benachrichtigungssignal erstellt wird und dem
Zeitpunkt, zu dem es ausgeliefert (z.B. wenn es durch einen Signal-Handhaber gefangen wird) oder
akzeptiert wird (z.B. mittels sigwaitinfo(2)), geben. In diesem Intervall können weitere Timer-Abläufe
auftreten. Die Timer-Überlaufzählung ist die Anzahl der zusätzlichen Timer-Abläufe, die zwischen dem
Zeitpunkt der Erstellung des Signals und dem Zeitpunkt der Auslieferung oder Akzeptanz aufgetreten sind.
Timer-Überläufe können auch auftreten, wenn Ablaufbenachrichtigungen mittels Aufruf eines Threads
ausgeliefert werden, da es eine beliebige Verzögerung zwischen einem Ablauf des Timers und dem Aufruf des
Benachrichtigungs-Threads geben kann und in diesem Verzögerungsintervall zusätzliche Timer-Abläufe
auftreten können.
RÜCKGABEWERT
Im Erfolgsfall liefert timer_getoverrun() den Überlaufzähler des festgelegten Timers zurück; dieser
Zähler kann 0 sein, falls keine Überläufe aufgetreten sind. Im Fehlerfall wird -1 zurückgeliefert und
errno gesetzt, um den Fehler anzuzeigen.
FEHLER
EINVAL timer_kennung ist keine gültige Timer-Kennung.
VERSIONEN
Wenn Timer-Benachrichtigungen mittels Signalen (SIGEV_SIGNAL) ausgeliefert werden, ist es unter Linux
auch möglich, den Überlaufzähler mittels des Feldes si_overrun der Struktur siginfo_t zu erhalten (siehe
sigaction(2)). Dies ermöglicht es einer Anwendung, den Zusatzaufwand der Ausführung eines Systemaufrufs
zu vermeiden, um den Überlaufzähler zu ermitteln, ist aber eine nicht portierbare Erweiterung von
POSIX.1.
POSIX.1 behandelt Überlaufe nur im Kontext von Timer-Benachrichtigungen mittels Signalen.
STANDARDS
POSIX.1-2008.
GESCHICHTE
Linux 2.6. POSIX.1-2001.
FEHLER
POSIX.1 spezifiziert, dass timer_getoverrun() DELAYTIMER_MAX zurückliefern soll, wenn der Überlaufzähler
größer oder gleich einem implementierungsabhängigen Maximum DELAYTIMER_MAX ist. Vor Linux 4.19 beginnt
der Zählerzyklus allerdings erneut von niedrigen Werten, falls der Timer-Überlaufwert die maximal
darstellbare Ganzzahl überschreitet und der Zähler in den nächsten Zyklus geht. Seit Linux 4.19 liefert
timer_getoverrun() in diesem Fall DELAYTIMER_MAX (definiert als INT_MAX in <limits.h>) zurück (und der
Überlaufwert wird auf 0 zurückgesetzt).
BEISPIELE
Siehe timer_create(2).
SIEHE AUCH
clock_gettime(2), sigaction(2), signalfd(2), sigwaitinfo(2), timer_create(2), timer_delete(2),
timer_settime(2), signal(7), time(7)
ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer
bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die
Mailingliste der Übersetzer: debian-l10n-german@lists.debian.org.
Linux man-pages 6.9.1 2. Mai 2024 timer_getoverrun(2)