bintime,
    getbintime, microtime,
    getmicrotime, nanotime,
    getnanotime — get the
    current time
#include
    <sys/time.h>
void
  
  bintime(struct
    bintime *bt);
void
  
  getbintime(struct
    bintime *bt);
void
  
  microtime(struct
    timeval *tv);
void
  
  getmicrotime(struct
    timeval *tv);
void
  
  nanotime(struct
    timespec *ts);
void
  
  getnanotime(struct
    timespec *tsp);
The
    bintime()
    and getbintime() functions store the system time as
    a struct bintime at the addresses specified by
    bt. The microtime() and
    getmicrotime() functions perform the same utility,
    but record the time as a struct timeval instead.
    Similarly the nanotime() and
    getnanotime() functions store the time as a
    struct timespec.
The
    bintime(),
    microtime(),
    and
    nanotime()
    functions always query the timecounter to return the current time as
    precisely as possible. Whereas getbintime(),
    getmicrotime(), and
    getnanotime() functions are abstractions which
    return a less precise, but faster to obtain, time.
The intent of the
    getbintime(),
    getmicrotime(),
    and
    getnanotime()
    functions is to enforce the user's preference for timer accuracy versus
    execution time.
The bintime functions first appeared in
    FreeBSD 5.0. The microtime
    and nanotime functions first appeared in
    FreeBSD 3.0 but have existed in other incarnations
    since 4.4BSD.