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

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)