Provided by: manpages-nl_20051127-1_all bug

NAAM

       gettimeofday, settimeofday - krijg/zet tijd

OVERZICHT

       #include <sys/time.h>

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

BESCHRIJVING

       De functies gettimeofday en settimeofday kunnen zowel de  tijd  als  de
       tijdzone  zetten  en  inspecteren.   Het  tv  argument  is  een timeval
       "struct" zoals bepaald in /usr/include/sys/time.h:

       struct timeval {
               long tv_sec;        /* seconden */
               long tv_usec;  /* microseconden */
       };

       en geeft het aantal seconden  en  microseconden  sinds  de  Epoch  (zie
       time(2)).  Het tz argument is een tijdzone :

       struct timezone {
               int  tz_minuteswest; /* minuten W van Greenwich */
               int  tz_dsttime;     /* soort zomertijd (dst) correctie */
       };

       Het  gebruik  van  de  tijdzone  structuur is verouderd; het tz_dsttime
       {tijd zone zomertijd tijd} veld is nooit gebruikt  onder  Linux  -  het
       werd  nooit  en  zal  nooit ondersteund worden door libc of glibc.  Elk
       voorkomen van dit veld in de kernel  broncode  (behalve  de  declaratie
       ervan) is een bug. Daarom is het volgende alleen van historisch belang.

       Het veld tz_dsttime bevat een symbolische constante (de waarden  worden
       hieronder  gegeven)  welke  aangeeft in welk deel van het jaar Daylight
       Saving Time (zomertijd) werkzaam is.  (NB: de waarde is  constant  door
       het  jaar  heen - het geeft niet aan of DST werkzaam is, maar het geeft
       slechts de keuze voor een algorithme.)  De zomertijd  algorithmes  zijn
       als volgt gedefinieerd:

        DST_NONE     /* geen zomertijd */
        DST_USA      /* USA stijl zomertijd */
        DST_AUST     /* Australische stijl zomertijd */
        DST_WET      /* West Europese zomertijd */
        DST_MET      /* Midden Europese zomertijd */
        DST_EET      /* Oost Europese zomertijd  */
        DST_CAN      /* Canada */
        DST_GB       /* Groot Britannië en Ierland */
        DST_RUM      /* Roemenië */
        DST_TUR      /* Turkije */
        DST_AUSTALT  /* Australische stijl met verschuiving in 1986 */

       Natuurlijk  bleek  dat  de  periode  waarin zomertijd geld niet met een
       eenvoudig algorithme per land  bepaald  kan  worden.   Inderdaad:  deze
       periode  wordt  bepaald  door  onvoorspelbare  politieke  beslissingen.
       Daarom is deze methode van tijdzone  representatie  afgeschaft.   Onder
       Linux  moet  het  tz_dsttime  veld  in een aanroep van settimeofday nul
       zijn.

       Onder Linux is er een eigenaardige ‘warp clock’ semantiek  geassocieerd
       met  de settimeofday systeem aanroep als tijdens de allereerste aanroep
       (na opstarten van het systeem) die een niet-NULL tz argument heeft, het
       tv  argument  NULL is en het tz_minuteswest niet-nul is.  In zo’n geval
       wordt aangenomen dat de CMOS klok op locale tijd  staat,  en  dat  daar
       deze  hoeveelheid  bij  moet  worden opgeteld om de UTC systeem tijd te
       krijgen.  Ongetwijfeld is het een slecht idee dit te gebruiken.

       De volgende macros zijn gedefinieerd  om  te  werken  met  een  timeval
       struct:
       #define timerisset(tvp)\
               ((tvp)->tv_sec || (tvp)->tv_usec)
       #define timercmp(tvp, uvp, cmp)\
               ((tvp)->tv_sec cmp (uvp)->tv_sec ||\
               (tvp)->tv_sec == (uvp)->tv_sec &&\
               (tvp)->tv_usec cmp (uvp)->tv_usec)
       #define timerclear(tvp)\
               ((tvp)->tv_sec = (tvp)->tv_usec = 0)

       Als  òf  tv  òf tz nul is, dan wordt de corresponderende structure niet
       gezet of teruggegeven.

       Alleen de supergebruiker mag settimeofday gebruiken.

TERUGGEEF WAARDE

       gettimeofday en settimeofday geven 0 bij succes, of -1 voor  falen  (in
       welk geval errno op die manier wordt gezet).

FOUTEN

       EPERM  {toestemming}  settimeofday wordt aangeroepen door iemand anders
              dan de supergebruiker.

       EINVAL {ongeldig} Tijdzone (of iets anders) is ongeldig.

       EFAULT {fout} Een van tv of tz  wijst  buiten  uw  toegankelijke  adres
              ruimte.

NOOT

       Het   prototype  voor  settimeofday  en  de  ‘defines’  voor  timercmp,
       timerisset, timerclear,  timeradd,  timersub  zijn  (sinds  glibc2.2.2)
       alleen  dan  beschikbaar  als _BSD_SOURCE is gedefinieerd (expliciet of
       impliciet, door _POSIX_SOURCE niet te definieren of door te  compileren
       met de -ansi vlag).

VOLDOET AAN

       SVr4, BSD 4.3

ZIE OOK

       date(1), adjtimex(2), time(2), ctime(3), ftime(3)