utc_mkreltime(3dts) — Subroutines
Name
utc_mkreltime - Converts a tm structure that expresses relative time to a relative binary timestamp
Synopsis
#include <dce/utc.h> int utc_mkreltime(
utc_t ∗utc,
struct tm ∗timetm,
long tns,
struct tm ∗inacctm,
long ins);
Parameters
Input
timetmA tm structure that expresses a relative time. On input, tm_wday and tm_yday are ignored; the value of tm_isdst should be -1.
tnsNanoseconds since the time component.
inacctmA tm structure that expresses seconds of inaccuracy. If a null pointer is passed, or if tm_yday is negative, the inaccuracy is considered to be unspecified. On input, tm_mday, tm_mon, tm_year, tm_wday, tm_isdst, and tm_zone are ignored.
insNanoseconds of the inaccuracy component.
Output
utcResulting relative binary timestamp.
Description
The utc_mkreltime() routine converts a tm structure that expresses relative time to a relative binary timestamp. Additional inputs include nanoseconds since the last second of time and nanoseconds of inaccuracy.
Return Values
0Indicates that the routine executed successfully.
-1Indicates an invalid time argument or invalid results.
Examples
The following example converts the relative time 125-03:12:30.1I120.25 to a relative binary timestamp.
utc_t utc;
struct tm tmtime,tminacc;
long tnsec,insec;
/∗ Fill in the fields
∗/
memset((void ∗)&tmtime,0,sizeof(tmtime));
tmtime.tm_mday = 125;
tmtime.tm_hour = 3;
tmtime.tm_min = 12;
tmtime.tm_sec = 30;
tnsec = 100000000; /∗ .1 ∗ 1.0E9 ∗/
memset((void ∗)&tminacc,0,sizeof(tminacc));
tminacc.tm_sec = 120;
tnsec = 250000000; /∗ .25 ∗ 1.0E9 ∗/
/∗ Convert to a relative binary timestamp...
∗/
utc_mkreltime(&utc, /∗ Out: Resultant relative binary timestamp ∗/
&tmtime, /∗ In: tm struct that represents input ∗/
tnsec, /∗ In: Nanoseconds from input ∗/
&tminacc, /∗ In: tm struct that represents inacc ∗/
insec); /∗ In: Nanoseconds from input ∗/