The
time_second variable is the system's “wall time” clock. It is set at boot by
inittodr(9), and is updated periodically via
timecounter(9) framework, and also updated by the
settimeofday(2) system call.
The
time_uptime variable is a monotonically increasing system clock. It is set at boot, and is updated periodically. (It is not updated by
settimeofday(2).)
The
boottime variable holds the system boot time. It is set at system boot, and is updated when the system time is adjusted with
settimeofday(2).
All of these variables contain times expressed in seconds and microseconds since midnight (0 hour), January 1, 1970.
The
bintime(9),
getbintime(9),
microtime(9),
getmicrotime(9),
nanotime(9), and
getnanotime(9) functions can be used to get the current time more accurately and in an atomic manner.
Similarly, the
binuptime(9),
getbinuptime(9),
microuptime(9),
getmicrouptime(9),
nanouptime(9), and
getnanouptime(9) functions can be used to get the time elapsed since boot more accurately and in an atomic manner.
boottime may be read and written without special precautions.