---
name: "inittodr"
section: "9"
platform: "linux"
package: "freebsd-manpages"
version: "6.0-5"
release: "Debian 4.0 (Etch)"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/inittodr"
---

# inittodr(9)

initialize system time

## NAME

**inittodr** – initialize system time

## SYNOPSIS

**#include \<sys/types.h\>**

**#include \<sys/systm.h\>**

*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 obtained from the root file system, as given in *base*. How the *base* value is obtained will vary depending on the root file system type. The heuristics used include:

- If the battery-backed clock has a valid time, it is used.

- If the battery-backed clock does not have a valid time, the time provided in *base* will be used.

Once a system time has been determined, it is stored in the *time* variable.

## 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.

## SEE ALSO

[resettodr(9)](/resettodr/9.md), [time(9)](/time/9.md)

## BUGS

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.

The FreeBSD implementation should do a better job of validating the time provided in *base* when the battery-backed clock is unusable. Currently it unconditionally sets the system clock to this value.
