timer_settime(2)

NUME
timer_settime, timer_gettime - armează/dezarmează și extrag starea temporizatorului POSIX per-proces

BIBLIOTECA
Biblioteca de timp real (librt, -lrt)

SINOPSIS
#include <time.h>

int timer_gettime(timer_t timerid, struct itimerspec *curr_value);
int timer_settime(timer_t timerid, int flags,
                  const struct itimerspec *restrict new_value,
                  struct itimerspec *_Nullable restrict old_value);

    Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):

timer_settime(), timer_gettime():
    _POSIX_C_SOURCE >= 199309L

DESCRIERE
timer_settime() armează sau dezarmează temporizatorul identificat de timerid. Argumentul new_value este un indicator către o structură itimerspec care specifică noua valoare inițială și noul interval pentru temporizator. Structura itimerspec este descrisă în itimerspec(3type).

Fiecare dintre substructurile structurii itimerspec este o structură timespec(3) care permite specificarea unei valori de timp în secunde și nanosecunde. Aceste valori de timp sunt măsurate în funcție de ceasul care a fost specificat atunci când temporizatorul a fost creat de timer_create(2).

Dacă new_value->it_value specifică o valoare diferită de zero (adică oricare dintre subcâmpuri este diferit de zero), atunci timer_settime() armează (pornește) cronometrul, stabilind ca acesta să expire inițial la ora dată; (dacă temporizatorul a fost deja armat, atunci configurările anterioare sunt suprascrise). Dacă new_value->it_value specifică o valoare zero (adică, ambele subcâmpuri sunt zero), atunci temporizatorul este dezarmat.

Câmpul new_value->it_interval specifică perioada de temporizare, în secunde și nanosecunde. Dacă acest câmp este diferit de zero, atunci de fiecare dată când expiră un temporizator armat, temporizatorul este reîncărcat de la valoarea specificată în new_value->it_interval. Dacă new_value->it_interval specifică o valoare zero, atunci temporizatorul expiră doar o singură dată, la momentul specificat de it_value.

În mod implicit, ora inițială de expirare specificată în new_value->it_value este interpretată în raport cu ora curentă a ceasului temporizatorului în momentul apelului. Acest lucru poate fi modificat prin specificarea TIMER_ABSTIME în flags, caz în care new_value->it_value este interpretat ca o valoare absolută măsurată pe ceasul temporizatorului; adică, temporizatorul va expira atunci când valoarea ceasului atinge valoarea specificată de new_value->it_value. Dacă timpul absolut specificat a trecut deja, atunci temporizatorul expiră imediat, iar numărul de depășire (a se vedea timer_getoverrun(2)) va fi fixat corect.

Dacă valoarea ceasului CLOCK_REALTIME este ajustată în timp ce un temporizator absolut bazat pe acel ceas este armat, atunci expirarea temporizatorului va fi ajustată în mod corespunzător. Ajustările ceasului CLOCK_REALTIME nu au niciun efect asupra temporizatoarelor relative bazate pe acel ceas.

Dacă old_value nu este NULL, atunci acesta indică o memorie tampon care este utilizată pentru a returna intervalul anterior al temporizatorului (în old_value->it_interval) și perioada de timp până la următoarea expirare a temporizatorului (în old_value->it_value).

timer_gettime() returnează timpul până la următoarea expirare și intervalul pentru temporizatorul specificat de timerid, în memoria tampon indicată de curr_value. Timpul rămas până la următoarea expirare a temporizatorului este returnat în curr_value->it_value; aceasta este întotdeauna o valoare relativă, indiferent dacă la armarea temporizatorului a fost utilizat sau nu fanionul TIMER_ABSTIME. Dacă valoarea returnată în curr_value->it_value este zero, atunci temporizatorul este în prezent dezarmat. Intervalul temporizatorului este returnat în curr_value->it_interval. Dacă valoarea returnată în curr_value->it_interval este zero, atunci acesta este un temporizator „one-shot” (folosit doar odată).

VALOAREA RETURNATĂ
În caz de succes, timer_settime() și timer_gettime() returnează 0. În caz de eroare, se returnează -1, iar errno este configurată pentru a indica eroarea.

ERORI-IEȘIRE
Aceste funcții pot eșua cu următoarele erori:

EFAULT
    new_value, old_value sau curr_value nu este un indicator valid.

EINVAL
    timerid nu este valid.

timer_settime() poate eșua cu următoarele erori:

EINVAL
    new_value.it_value este negativă; sau new_value.it_value.tv_nsec este negativă sau mai mare de 999,999,999.

STANDARDE
POSIX.1-2024.

ISTORIC
Linux 2.6. POSIX.1-2001.

EXEMPLE
A se vedea timer_create(2).

CONSULTAȚI ȘI
timer_create(2), timer_getoverrun(2), timespec(3), time(7)

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) 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.