NAME
inittodr
—
initialize system time
SYNOPSIS
void
inittodr
(time_t
base);
DESCRIPTION
The
inittodr
()
function determines the time and sets the system clock. It tries to pick the
correct time using a set of heuristics that examine the system's
battery-backed clock and the time reported by the file system, as given in
base. Those heuristics include:
- If the battery-backed clock has a valid time, it is used.
- If the battery-backed clock does not have a valid time, and the time provided in base is within reason, base is used as the current time.
- If the battery-backed clock appears invalid, and base appears nonsensical or was not provided (was given as zero), an arbitrary base (typically some time in the late 1970s) will be used.
Once a system time has been determined, it is
passed to the
tc_setclock
()
function.
DIAGNOSTICS
The inittodr
() function prints diagnostic
messages if it has trouble figuring out the system time. Conditions that can
cause diagnostic messages to be printed include:
- The battery-backed clock's time appears nonsensical.
- The base time appears nonsensical.
- The base time and the battery-backed clock's time differ by a large amount.
SEE ALSO
BUGS
Each system's heuristics for picking the correct time are slightly different.