inittodr - initialize system time
void
inittodr(time_t base);
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:
+o If the battery-backed clock has a valid time, it is
used.
+o 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.
+o 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 stored in the
time variable.
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:
+o The battery-backed clock's time appears nonsensical.
+o The base time appears nonsensical.
+o The base time and the battery-backed clock's time differ
by a large
amount.
resettodr(9), time(9)
On many systems, inittodr() has to convert from a time expressed in terms
of year, month, day, hours, minutes, and seconds to time,
expressed in
seconds. Many of the implementations could share code, but
do not.
Each system's heuristics for picking the correct time are
slightly different.
OpenBSD 3.6 November 13, 1995
[ Back ] |