Provided by: manpages-nl_20051127-4_all
 

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 een‐
        voudig 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.
        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, timeris     
        set,  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).
        SVr4, BSD 4.3
        date(1), adjtimex(2), time(2), ctime(3), ftime(3)