The Apache Portable Runtime (APR) is a C runtime library designed to
provide a number of lower level basic functions for developers. See
http://apr.apache.org/ for more info.
Being the generally curious sort, I took a look at the URL above.
Besides not working at all in lynx, the documentation appears to
be largely nonexistent. But it does appear that the goal of the
time routines in the APR library is to support the "time of day"
notion, as used to tell people what a wall clock reads, similar
to the "struct tm" values from localtime() and gmtime().
These are not necessarily what one wants at all. In particular,
consider the way an accurate clock mounted on a wall will read around
the time when most of the USA transitions into or out of Daylight
Saving Time:
01:59:57
01:59:58
01:59:59
01:00:00
01:00:01
...
Or:
01:59:58
01:59:59
03:00:00
Instead of one second elapsing, one hour and one second suddenly
elapses (in the second case). In the first case, time actually
goes backwards!
Besides DST, one may have to deal with leap-seconds, in which there
is an xx:59:60. For these reasons, Coordinated Universal Time
(UTC) actually comes in three flavors: UTC, UT1, and TAI. See
<
http://tycho.usno.navy.mil/leapsec.html> and
<
http://tycho.usno.navy.mil/systime.html> for details.
And of course, on computers, we may also be interested in elapsed
CPU time (which is quite different from wall-clock time, especially
in multiprocessing and multiprocessor systems).
(I would write more but it is time to get ready for gym).