Scroll to navigation

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);

Feature Test Macro Requirements for glibc (se feature_test_macros(7)):

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

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