3 .ds ;G \\*(;G\\f\\$1\\$3\\f\\$2
4 .if !
\a\\$4
\a\a .Af \\$2 \\$1 "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
7 .ie
\a\\$3
\a\a .ft \\$1
11 .Af "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
16 .aF 5 \\n(.f "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
19 .aF 5 1 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
22 .aF 1 5 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
24 .de EX \" start example
41 tv \- high resolution time support
47 library supports high resolution
51 contains these elements:
56 Seconds since the epoch.
61 Nanosecond resolution.
63 In practice resolution is much coarser than 1 nanosecond.
64 Systems that only support 1 second resolution always set
67 .SS "int tvgettime(Tv_t* tv)"
72 is returned on success,
75 .SS "int tvsettime(const Tv_t* tv)"
76 Sets the system time to
78 The caller must have sufficient privilege.
80 is returned on success,
83 .SS "int tvcmp(const Tv_t* av, const Tv_t* bv)"
105 .SS "time_t tvgetatime(const struct stat* st, Tv_t* tv)"
106 .SS "time_t tvgetmtime(const struct stat* st, Tv_t* tv)"
107 .SS "time_t tvgetctime(const struct stat* st, Tv_t* tv)"
112 the access, modify, or change time, respectively.
113 The seconds portion of
116 .SS "time_t tvsetatime(struct stat* st, const Tv_t* tv)"
117 .SS "time_t tvsetmtime(struct stat* st, const Tv_t* tv)"
118 .SS "time_t tvsetctime(struct stat* st, const Tv_t* tv)"
121 access, modify, or change time, respectively, to
123 The seconds portion of
126 .SS "int tvtouch(const char* path, const Tv_t* av, const Tv_t* mv, const Tv_t* cv, int copy)"
140 may be 0; the corresponding file time will retain the previous value if
146 otherwise the corresponding file time will be set to the current time.
148 is returned on success,
151 .SS "int tvsleep(const Tv_t* tv, Tv_t* rv)"
156 is returned if the full
163 if not 0, is set to the sleep time remaining.
171 to the corresponding error code.