INITTODR(9)

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
microtime(9), resettodr(9)

BUGS
Each system's heuristics for picking the correct time are slightly different.