summaryrefslogtreecommitdiffstats
path: root/lib/libc/stdtime
diff options
context:
space:
mode:
authormpp <mpp@FreeBSD.org>1996-05-01 23:17:27 +0000
committermpp <mpp@FreeBSD.org>1996-05-01 23:17:27 +0000
commit94cc53e73dcff17a43da863ef79a084553c9f887 (patch)
treeabad58748e91826b02cbf3a185fba5a8ae6042c3 /lib/libc/stdtime
parente7fdb04c6f1f4c98b70eb3a572de455ee662cdf5 (diff)
downloadFreeBSD-src-94cc53e73dcff17a43da863ef79a084553c9f887.zip
FreeBSD-src-94cc53e73dcff17a43da863ef79a084553c9f887.tar.gz
Convert the time2posix man page to mdoc format. This still
needs some other cleanup, but it is good enough for now.
Diffstat (limited to 'lib/libc/stdtime')
-rw-r--r--lib/libc/stdtime/time2posix.394
1 files changed, 45 insertions, 49 deletions
diff --git a/lib/libc/stdtime/time2posix.3 b/lib/libc/stdtime/time2posix.3
index 7faa85d..6715eeb 100644
--- a/lib/libc/stdtime/time2posix.3
+++ b/lib/libc/stdtime/time2posix.3
@@ -1,28 +1,25 @@
-.TH TIME2POSIX 3
-.SH NAME
-time2posix, posix2time \- convert seconds since the Epoch
-.SH SYNOPSIS
-.nf
-.B #include <time.h>
-.PP
-.B time_t time2posix(t)
-.B time_t t
-.PP
-.B time_t posix2time(t)
-.B time_t t
-.PP
-.B cc ... -lz
-.fi
-.SH DESCRIPTION
-IEEE Standard 1003.1
-(POSIX)
+.Dd May 1, 1996
+.Dt TIME2POSIX 3
+.Os
+.Sh NAME
+.Nm time2posix ,
+.Nm posix2time
+.Nd convert seconds since the Epoch
+.Sh SYNOPSIS
+.Fd #include <time.h>
+.Ft time_t
+.Fn time2posix "const time_t *t"
+.Ft time_t
+.Fn posix2time "const time_t *t"
+.Sh DESCRIPTION
+.St -p1003.1-88
legislates that a time_t value of
536457599 shall correspond to "Wed Dec 31 23:59:59 GMT 1986."
This effectively implies that POSIX time_t's cannot include leap
seconds and,
therefore,
that the system time must be adjusted as each leap occurs.
-.PP
+.Pp
If the time package is configured with leap-second support
enabled,
however,
@@ -31,19 +28,20 @@ time_t values continue to increase over leap events
(as a true `seconds since...' value).
This means that these values will differ from those required by POSIX
by the net number of leap seconds inserted since the Epoch.
-.PP
+.Pp
Typically this is not a problem as the type time_t is intended
to be
(mostly)
opaque\(emtime_t values should only be obtained-from and
passed-to functions such as
-.IR time(2) ,
-.IR localtime(3) ,
-.IR mktime(3) ,
+.Xr time 2 ,
+.Xr localtime 3 ,
+.Xr mktime 3
and
-.IR difftime(3) .
+.Xr difftime 3 .
However,
-POSIX gives an arithmetic
+.Std -p1003.1-88
+gives an arithmetic
expression for directly computing a time_t value from a given date/time,
and the same relationship is assumed by some
(usually older)
@@ -51,11 +49,11 @@ applications.
Any programs creating/dissecting time_t's
using such a relationship will typically not handle intervals
over leap seconds correctly.
-.PP
+.Pp
The
-.I time2posix
+.Fn time2posix
and
-.I posix2time
+.Fn posix2time
functions are provided to address this time_t mismatch by converting
between local time_t values and their POSIX equivalents.
This is done by accounting for the number of time-base changes that
@@ -64,26 +62,27 @@ or deleted.
These converted values can then be used in lieu of correcting the older
applications,
or when communicating with POSIX-compliant systems.
-.PP
-.I Time2posix
-is single-valued.
+.Pp
+The
+.Fn time2posix
+function is single-valued.
That is,
every local time_t
corresponds to a single POSIX time_t.
-.I Posix2time
-is less well-behaved:
+The
+.Fn posix2time
+function is less well-behaved:
for a positive leap second hit the result is not unique,
and for a negative leap second hit the corresponding
POSIX time_t doesn't exist so an adjacent value is returned.
Both of these are good indicators of the inferiority of the
POSIX representation.
-.PP
-The following table summarizes the relationship between a time
-T and it's conversion to,
+.Pp
+The following table summarizes the relationship between a time_t
+nd it's conversion to,
and back from,
the POSIX representation over the leap second inserted at the end of June,
1993.
-.nf
.ta \w'93/06/30 'u +\w'23:59:59 'u +\w'A+0 'u +\w'X=time2posix(T) 'u
DATE TIME T X=time2posix(T) posix2time(X)
93/06/30 23:59:59 A+0 B+0 A+0
@@ -97,22 +96,19 @@ DATE TIME T X=time2posix(T) posix2time(X)
??/06/30 23:59:58 A+0 B+0 A+0
??/07/01 00:00:00 A+1 B+2 A+1
??/07/01 00:00:01 A+2 B+3 A+2
-.sp
-.ce
+.Pp
[Note: posix2time(B+1) => A+0 or A+1]
-.fi
-.PP
+.Pp
If leap-second support is not enabled,
local time_t's and
POSIX time_t's are equivalent,
and both
-.I time2posix
+.Fn time2posix
and
-.I posix2time
+.Fn posix2time
degenerate to the identity function.
-.SH SEE ALSO
-difftime(3),
-localtime(3),
-mktime(3),
-time(3)
-.\" @(#)time2posix.3 7.3
+.Sh "SEE ALSO"
+.Xr difftime 3 ,
+.Xr localtime 3 ,
+.Xr mktime 3 ,
+.Xr time 3
OpenPOWER on IntegriCloud