tv.3 revision da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ds ;G \\*(;G\\f\\$1\\$3\\f\\$2
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.if !\\$4 .Af \\$2 \\$1 "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ie \\$3 .ft \\$1
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.nr ;G \\n(.f
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.Af "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ft \\n(;G \}
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.aF 5 \\n(.f "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.aF 5 1 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.aF 1 5 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de EX \" start example
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ta 1i 2i 3i 4i 5i 6i
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de EE \" end example
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chintv \- high resolution time support
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SH SYNOPSIS
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L "#include <tv.h>"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SH DESCRIPTION
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinlibrary supports high resolution
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chintime specifications.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chincontains these elements:
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L unsigned
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L _ast_int4_t
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinSeconds since the epoch.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L unsigned
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L _ast_int4_t
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinNanosecond resolution.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinIn practice resolution is much coarser than 1 nanosecond.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinSystems that only support 1 second resolution always set
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SS "int tvgettime(Tv_t* tv)"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinto the current time.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinis returned on success,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SS "int tvsettime(const Tv_t* tv)"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinSets the system time to
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinThe caller must have sufficient privilege.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinis returned on success,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SS "int tvcmp(const Tv_t* av, const Tv_t* bv)"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinCompares the times
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinand returns
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinis less than
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinis equal to
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinis greater than
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SS "time_t tvgetatime(const struct stat* st, Tv_t* tv)"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SS "time_t tvgetmtime(const struct stat* st, Tv_t* tv)"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SS "time_t tvgetctime(const struct stat* st, Tv_t* tv)"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinThese macros set
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinthe access, modify, or change time, respectively.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinThe seconds portion of
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinis returned.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SS "time_t tvsetatime(struct stat* st, const Tv_t* tv)"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SS "time_t tvsetmtime(struct stat* st, const Tv_t* tv)"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SS "time_t tvsetctime(struct stat* st, const Tv_t* tv)"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinThese macros set the
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinaccess, modify, or change time, respectively, to
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinThe seconds portion of
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinis returned.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SS "int tvtouch(const char* path, const Tv_t* av, const Tv_t* mv, const Tv_t* cv, int copy)"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinSets the file
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinaccess time from
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinmodify time from
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinand change time from
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinmay be 0; the corresponding file time will retain the previous value if
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinotherwise the corresponding file time will be set to the current time.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinis returned on success,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SS "int tvsleep(const Tv_t* tv, Tv_t* rv)"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinPauses execution for
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinis returned if the full
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinamount has expired.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinis returned and
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinif not 0, is set to the sleep time remaining.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SH "RETURN VALUE"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.LR tvcmp() ,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinan error return of
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinto the corresponding error code.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SH "SEE ALSO"