| timer_getoverrun(2) | System Calls Manual | timer_getoverrun(2) |
NAVN¶
timer_getoverrun - hent overløbsantal for et POSIX per proces-stopur
BIBLIOTEK¶
Real-time library (librt, -lrt)
SYNOPSIS¶
#include <time.h>
int timer_getoverrun(timer_t timerid);
timer_getoverrun():
_POSIX_C_SOURCE >= 199309L
BESKRIVELSE¶
timer_getoverrun() returnerer »overløbsantallet« (overrun count) for stopuret refereret til af timerid. Et program kan bruge overløbsantallet til præcist at beregne antallet af stopursudløb, der ville være sket over et tidsinterval. Stopursoverløb kan opstå både under modtagelse af udløbspåmindelser via signaler (SIGEV_SIGNAL), og via tråde (SIGEV_THREAD).
Når udløbspåmindelser leveres via et signal kan overløb opstå som en følge. Uanset om et realtids signal bruges for stopurspåmindelser, så sætter systemet mindst et signal per stopur i kø. (Dette er opførelsen anført af POSIX.1. Alternativet at lave en kø for et signal for hver stopursudløb kan nemt medføre mere end de tilladte begrænsninger for signaler i kø på systemet). På grund af systemplanlægningsforsinkelser eller fordi signalet kan være midlertidigt blokeret, kan der være en forsinkelse mellem tiden hvor påmindelsessignalet oprettes og tiden hvor det leveres (f.eks. fanget af en signalhåndtering) eller accepteret (f.eks. via sigwaitinfo(2)). I dette interval kan yderligere stopursudløb opstå. Stopurets overløbantal er antallet af yderligere stopursudløb, der opstod mellem tiden hvor signalet blev oprettet og det blev leveret eller accepteret.
Stopursoverløb kan også opstå når udløbspåmindelser leveres via igangsættelse af en tård, da der kan være en arbitrær forbinkelse mellem et udløb for et stopur og igangsættelse af påmindelsestråden, og i det forsinkelsesinterval, kan yderligere stopursudløb opstå.
RETURVÆRDI¶
Ved succes returnerer timer_getoverrun() overløbsantallet for det angivne stopur; dette antal kan være 0 hvis ingen overløb er opstået. Ved fejl returneres -1 og errno angives for at indikere fejlen.
FEJL¶
- EINVAL
- timerid er ikke et gyldigt timer-id.
VERSIONER¶
Når stopurspåmindelser leveres via signaler (SIGEV_SIGNAL), er det på Linux altid muligt at indhente overløbsantallet via feltet si_overrun for strukturen siginfo_t (se sigaction(2)). Dette gør det muligt for et program at undgå belastningen med at lave et systemkald for at indhente overløbsantallet, men er en ikkeflytbar udvidelse til POSIX.1.
POSIX.1 diskuterer kun stopursoverløb i konteksten af stopurspåmindelser, der bruger signaler.
STANDARDER¶
POSIX.1-2024.
HISTORIK¶
Linux 2.6. POSIX.1-2001.
FEJL¶
POSIX.1 specifies that if the timer overrun count is equal to or greater than an implementation-defined maximum, DELAYTIMER_MAX, then timer_getoverrun() should return DELAYTIMER_MAX. However, before Linux 4.19, if the timer overrun value exceeds the maximum representable integer, the counter cycles, starting once more from low values. Since Linux 4.19, timer_getoverrun() returns DELAYTIMER_MAX (defined as INT_MAX in <limits.h>) in this case (and the overrun value is reset to 0).
EKSEMPLER¶
Se timer_create(2).
SE OGSŶ
clock_gettime(2), sigaction(2), signalfd(2), sigwaitinfo(2), timer_create(2), timer_delete(2), timer_settime(2), signal(7), time(7)
OVERSÆTTELSE¶
Oversættere af denne manual til dansk Joe Hansen <joedalton2@yahoo.dk>
Denne oversættelse er gratis dokumentation; læs GNU General Public License version 3 eller nyere for ophavsretbetingelser. Der er INGEN ANSVAR.
Hvis du støder på fejl i oversættelsen af denne vejledning, skal du sende en besked til debian-l10n-danish@lists.debian.org.
| 29. oktober 2025 | Linux man-pages 6.17 |