Provided by: manpages-ro-dev_4.27.0-1_all bug

NUME

       gettimeofday, settimeofday - obține / reglează ora

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

SINOPSIS

       #include <sys/time.h>

       int gettimeofday(struct timeval *restrict tv,
                        struct timezone *_Nullable restrict tz);
       int settimeofday(const struct timeval *tv,
                        const struct timezone *_Nullable tz);

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

       settimeofday():
           Începând cu glibc 2.19:
               _DEFAULT_SOURCE
           glibc 2.19 și versiunile anterioare:
               _BSD_SOURCE

DESCRIERE

       Funcțiile gettimeofday() și settimeofday() pot obține și regla ora, precum și un fus orar.

       Argumentul tv este o structură struct timeval (după cum se specifică în <sys/time.h>):

           struct timeval {
               time_t      tv_sec;     /* secunde */
               suseconds_t tv_usec;    /* microsecunde */
           };

       și oferă numărul de secunde și microsecunde de la Epocă (a se vedea time(2)).

       Argumentul tz este o structură struct timezone:

           struct timezone {
               int tz_minuteswest;     /* minute la vest de Greenwich  */
               int tz_dsttime;         /* tipul de corecție a orei de vară */
           };

       Dacă  tv  sau  tz este NULL, structura corespunzătoare nu este definită sau returnată; (cu toate acestea,
       vor apărea avertismente de compilare dacă tv este NULL).

       Utilizarea structurii timezone este învechită; argumentul tz ar trebui în mod normal să fie specificat ca
       NULL. A se vedea secțiunea NOTE de mai jos.

       În Linux, există o semantică ciudată de „ceas de deformare” asociată cu apelul de  sistem  settimeofday()
       dacă  la  primul  apel (după pornire) care are un argument tz non-NULL, argumentul tv este NULL și câmpul
       tz_minuteswest este diferit de zero; (câmpul tz_dsttime ar trebui să fie zero pentru acest caz).  Într-un
       astfel de caz, se presupune că ceasul CMOS este la ora locală și că trebuie să fie incrementat cu această
       valoare  pentru  a  obține  ora  sistemului  UTC.  Fără îndoială, este o idee proastă să folosiți această
       caracteristică.

VALOAREA RETURNATĂ

       gettimeofday() și settimeofday() returnează 0 pentru succes. În caz de  eroare,  se  returnează  -1,  iar
       errno este configurată pentru a indica eroarea.

ERORI-IEȘIRE

       EFAULT Unul dintre argumente tv sau tz a indicat în afara spațiului de adrese accesibil.

       EINVAL (settimeofday()): timezone nu este valid.

       EINVAL (settimeofday()): tv.tv_sec este negativ sau tv.tv_usec este în afara intervalului [0, 999,999].

       EINVAL (începând cu Linux 4.3)
              (settimeofday()):  S-a  încercat  reglarea  orei  la  o  valoare mai mică decât valoarea curentă a
              ceasului CLOCK_MONOTONIC (consultați clock_gettime(2)).

       EPERM  Procesul apelant nu are privilegii suficiente  pentru  a  apela  settimeofday();  sub  Linux  este
              necesară capacitatea CAP_SYS_TIME.

VERSIUNI

   Diferențe între biblioteca C și nucleu
       Pe unele arhitecturi, o implementare a gettimeofday() este furnizată în vdso(7).

       Nucleul  acceptă NULL atât pentru tv, cât și pentru tz.  Argumentul fusului orar este ignorat de glibc și
       musl și nu este transmis către/de la nucleu.  Android bionic transmite argumentul fusului  orar  către/de
       la nucleu, dar Android nu actualizează fusul orar al nucleului pe baza fusului orar al dispozitivului din
       Configurări, astfel încât fusul orar al nucleului este de obicei UTC.

STANDARDE

       gettimeofday()
              POSIX.1-2008 (obsolet).

       settimeofday()
              Niciunul.

ISTORIC

       SVr4,  4.3BSD.   POSIX.1-2001  descrie  gettimeofday(),  dar nu și settimeofday(). POSIX.1-2008 marchează
       gettimeofday() ca fiind depășit, recomandând utilizarea în schimb a clock_gettime(2).

       În mod tradițional, câmpurile din struct timeval erau de tip long.

   Câmpul tz_dsttime
       Pe un nucleu non-Linux, cu glibc, câmpul tz_dsttime din struct timezone  va  fi  stabilit  la  o  valoare
       diferită  de  zero  de  către  gettimeofday()  dacă  fusului orar curent i s-a aplicat sau i se va aplica
       vreodată o regulă de schimbare a orei de vară.  În acest sens, aceasta reflectă  exact  semnificația  lui
       daylight(3)  pentru  fusul curent. Pe Linux, cu glibc, stabilirea câmpului tz_dsttime din struct timezone
       nu a fost niciodată utilizată de settimeofday() sau gettimeofday().  Prin urmare, cele  ce  urmează  sunt
       pur de interes istoric.

       Pe  sistemele  vechi,  câmpul  tz_dsttime conține o constantă simbolică (valorile sunt date mai jos) care
       indică în ce parte a anului este în vigoare ora de vară. Notă: această  valoare  este  constantă  pe  tot
       parcursul  anului:  ea  nu  indică  faptul  că  DST  (ora de vară) este în vigoare, ci doar selectează un
       algoritm. Algoritmii pentru ora de vară definiți sunt următorii:

           DST_NONE     /* nu la ora de vară */
           DST_USA      /* ora de vară în stil SUA */
           DST_AUST     /* ora de vară în stil australian */
           DST_WET      /* ora de vară în stil Europa de vest */
           DST_MET      /* ora de vară în stil Europa de vest */
           DST_EET      /* ora de vară în stil Europa centrală */
           DST_CAN      /* Canada */
           DST_GB       /* Marea Britaie și Irlanda */
           DST_RUM      /* România */
           DST_TUR      /* Turcia */
           DST_AUSTALT  /* Stil australian cu schimbare în 1986 */

       Desigur, s-a dovedit că perioada în care este în vigoare ora de vară nu poate  fi  dată  de  un  algoritm
       simplu,  unul  pentru  fiecare  țară;  într-adevăr, această perioadă este determinată de decizii politice
       imprevizibile. Prin urmare, această metodă de reprezentare a fusurilor orare a fost abandonată.

NOTE

       Ora returnată de gettimeofday() este afectată de salturi discontinue în ora sistemului (de exemplu,  dacă
       administratorul  sistemului  modifică  manual  ora  sistemului). Dacă aveți nevoie de un ceas care crește
       monoton, consultați clock_gettime(2).

       Macrocomenzile pentru operarea structurilor timeval sunt descrise în timeradd(3).

CONSULTAȚI ȘI

       date(1),  adjtimex(2),  clock_gettime(2),  time(2),  ctime(3),  ftime(3),  timeradd(3),  capabilities(7),
       time(7), vdso(7), hwclock(8)

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  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.9.1                    2 mai 2024                                    gettimeofday(2)