Provided by: manpages-ro-dev_4.21.0-2_all 

NUME
timer_getoverrun - obține numărul de depășiri al temporizatorului POSIX al unui proces
BIBLIOTECA
Biblioteca de timp real (librt, -lrt)
REZUMAT
#include <time.h>
int timer_getoverrun(timer_t timerid);
Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):
timer_getoverrun():
_POSIX_C_SOURCE >= 199309L
DESCRIERE
timer_getoverrun() returnează „numărul de depășiri” pentru temporizatorul la care se face referire prin
timerid. O aplicație poate utiliza numărul de depășiri pentru a calcula cu precizie numărul de expirări
ale temporizatorului care ar fi avut loc într-un anumit interval de timp. Depășirea temporizatorului
poate avea loc atât la primirea notificărilor de expirare prin intermediul semnalelor (SIGEV_SIGNAL), cât
ș i prin intermediul firelor de execuție (SIGEV_THREAD).
Atunci când notificările de expirare sunt transmise prin intermediul unui semnal, se pot produce depășiri
după cum urmează. Indiferent dacă se utilizează sau nu un semnal în timp real pentru notificările de
temporizare, sistemul pune în coadă cel mult un semnal pentru fiecare temporizator. (Acesta este
comportamentul specificat de POSIX.1. Alternativa, de a pune la coadă un semnal pentru fiecare expirare
a temporizatorului, ar putea duce cu ușurință la depășirea limitelor permise pentru semnalele puse la
coadă în sistem). Din cauza întârzierilor de planificare a sistemului sau pentru că semnalul poate fi
blocat temporar, poate exista o întârziere între momentul în care semnalul de notificare este generat și
momentul în care este livrat (de exemplu, prins de un gestionar de semnal) sau acceptat (de exemplu,
utilizând sigwaitinfo(2)). În acest interval, pot avea loc alte expirări ale temporizatorului.
Numărătoarea depășirii temporizatorului este numărul de expirări suplimentare ale temporizatorului care
au avut loc între momentul în care semnalul a fost generat și momentul în care a fost transmis sau
acceptat.
De asemenea, se pot produce depășiri ale temporizatorului atunci când notificările de expirare sunt
transmise prin invocarea unui fir, deoarece poate exista o întârziere arbitrară între expirarea
temporizatorului și invocarea firului de notificare, iar în acest interval de întârziere pot apărea
expirări suplimentare ale temporizatorului.
VALOAREA RETURNATĂ
În caz de succes, timer_getoverrun() returnează numărul de depășiri ale temporizatorului specificat;
acest număr poate fi 0 dacă nu au avut loc depășiri. În caz de eșec, se returnează -1, iar errno este
configurată pentru a indica eroarea.
ERORI
EINVAL id-cronometru nu este un ID de cronometru valid.
VERSIUNI
Acest apel de sistem este disponibil începând cu Linux 2.6.
STANDARDE
POSIX.1-2001, POSIX.1-2008.
NOTE
Atunci când notificările de temporizator sunt transmise prin intermediul semnalelor (SIGEV_SIGNAL), pe
Linux este posibilă și obținerea numărului de depășiri prin intermediul câmpului si_overrun din structura
siginfo_t (a se vedea sigaction(2)). Acest lucru permite unei aplicații să evite costurile suplimentare
legate de efectuarea unui apel de sistem pentru a obține numărul de depășiri, dar este o extensie
neportabilă la POSIX.1.
POSIX.1 discută despre depășirea temporizatoarelor numai în contextul notificărilor de temporizatoare
care utilizează semnale.
ERORI
POSIX.1 specifică faptul că, dacă numărul de depășiri ale temporizatorului este egal sau mai mare decât
un maxim definit de implementare, DELAYTIMER_MAX, atunci timer_getoverrun() trebuie să returneze
DELAYTIMER_MAX. Cu toate acestea, înainte de Linux 4.19, în cazul în care valoarea de depășire a
temporizatorului depășește numărul întreg maxim reprezentabil, contorul se repornește, pornind încă o
dată de la valori scăzute. Începând cu Linux 4.19, timer_getoverrun() returnează DELAYTIMER_MAX (definit
ca INT_MAX în <limits.h>) în acest caz (iar valoarea de depășire este readusă la 0).
EXEMPLE
A se vedea timer_create(2).
CONSULTAȚI ȘI
clock_gettime(2), sigaction(2), signalfd(2), sigwaitinfo(2), timer_create(2), timer_delete(2),
timer_settime(2), signal(7), time(7)
TRADUCERE
Traducerea în limba română a acestui manual a fost creată de Remus-Gabriel Chelu
<remusgabriel.chelu@disroot.org>
Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o
versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă Nicio
RESPONSABILITATE.
Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-
ro@lists.sourceforge.net.
Pagini de manual de Linux 6.03 30 octombrie 2022 timer_getoverrun(2)