timer_getoverrun(2) System Calls Manual timer_getoverrun(2) NUME timer_getoverrun - obine numarul de depairi al temporizatorului POSIX al unui proces BIBLIOTECA Biblioteca de timp real (librt, -lrt) SINOPSIS #include int timer_getoverrun(timer_t timerid); Cerine pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultai feature_test_macros(7)): timer_getoverrun(): _POSIX_C_SOURCE >= 199309L DESCRIERE timer_getoverrun() returneaza ,,numarul de depairi" pentru temporizatorul la care se face referire prin timerid. O aplicaie poate utiliza numarul de depairi pentru a calcula cu precizie numarul de expirari ale temporizatorului care ar fi avut loc intr-un anumit interval de timp. Depairea temporizatorului poate avea loc atat la primirea notificarilor de expirare prin intermediul semnalelor (SIGEV_SIGNAL), cat i prin intermediul firelor de execuie (SIGEV_THREAD). Atunci cand notificarile de expirare sunt transmise prin intermediul unui semnal, se pot produce depairi dupa cum urmeaza. Indiferent daca se utilizeaza sau nu un semnal in timp real pentru notificarile de temporizare, sistemul pune in coada cel mult un semnal pentru fiecare temporizator. (Acesta este comportamentul specificat de POSIX.1. Alternativa, de a pune la coada un semnal pentru fiecare expirare a temporizatorului, ar putea duce cu uurina la depairea limitelor permise pentru semnalele puse la coada in sistem). Din cauza intarzierilor de planificare a sistemului sau pentru ca semnalul poate fi blocat temporar, poate exista o intarziere intre momentul in care semnalul de notificare este generat i momentul in care este livrat (de exemplu, prins de un gestionar de semnal) sau acceptat (de exemplu, utilizand sigwaitinfo(2)). In acest interval, pot avea loc alte expirari ale temporizatorului. Numaratoarea depairii temporizatorului este numarul de expirari suplimentare ale temporizatorului care au avut loc intre momentul in care semnalul a fost generat i momentul in care a fost transmis sau acceptat. De asemenea, se pot produce depairi ale temporizatorului atunci cand notificarile de expirare sunt transmise prin invocarea unui fir, deoarece poate exista o intarziere arbitrara intre expirarea temporizatorului i invocarea firului de notificare, iar in acest interval de intarziere pot aparea expirari suplimentare ale temporizatorului. VALOAREA RETURNATA In caz de succes, timer_getoverrun() returneaza numarul de depairi ale temporizatorului specificat; acest numar poate fi 0 daca nu au avut loc depairi. In caz de eec, se returneaza -1, iar errno este configurata pentru a indica eroarea. ERORI-IEIRE EINVAL id-cronometru nu este un ID de cronometru valid. VERSIUNI Atunci cand notificarile de temporizator sunt transmise prin intermediul semnalelor (SIGEV_SIGNAL), pe Linux este posibila i obinerea numarului de depairi prin intermediul campului si_overrun din structura siginfo_t (a se vedea sigaction(2)). Acest lucru permite unei aplicaii sa evite costurile suplimentare legate de efectuarea unui apel de sistem pentru a obine numarul de depairi, dar este o extensie neportabila la POSIX.1. POSIX.1 discuta despre depairea temporizatoarelor numai in contextul notificarilor de temporizatoare care utilizeaza semnale. STANDARDE POSIX.1-2008. ISTORIC Linux 2.6. POSIX.1-2001. ERORI POSIX.1 specifica faptul ca, daca numarul de depairi ale temporizatorului este egal sau mai mare decat un maxim definit de implementare, DELAYTIMER_MAX, atunci timer_getoverrun() trebuie sa returneze DELAYTIMER_MAX. Cu toate acestea, inainte de Linux 4.19, in cazul in care valoarea de depaire a temporizatorului depaete numarul intreg maxim reprezentabil, contorul se repornete, pornind inca o data de la valori scazute. Incepand cu Linux 4.19, timer_getoverrun() returneaza DELAYTIMER_MAX (definit ca INT_MAX in ) in acest caz (iar valoarea de depaire este readusa la 0). EXEMPLE A se vedea timer_create(2). CONSULTAI 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 in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.9.1 2 mai 2024 timer_getoverrun(2)