da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.fp 5 CW
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de Af
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ds ;G \\*(;G\\f\\$1\\$3\\f\\$2
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.if !\\$4 .Af \\$2 \\$1 "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de aF
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ie \\$3 .ft \\$1
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.el \{\
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ds ;G \&
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.nr ;G \\n(.f
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.Af "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin\\*(;G
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ft \\n(;G \}
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de L
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.aF 5 \\n(.f "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de LR
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.aF 5 1 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de RL
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.aF 1 5 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de EX \" start example
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ta 1i 2i 3i 4i 5i 6i
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.PP
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.RS
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.PD 0
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ft 5
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.nf
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de EE \" end example
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.fi
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ft
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.PD
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.RE
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.PP
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.TH TM 3
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SH NAME
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chintv \- high resolution time support
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SH SYNOPSIS
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L "#include <tv.h>"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SH DESCRIPTION
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinThe
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.I tv
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinlibrary supports high resolution
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.B Tv_t
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chintime specifications.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SS Tv_t
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chincontains these elements:
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.TP
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L unsigned
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L _ast_int4_t
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L tv_sec
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinSeconds since the epoch.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.TP
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L unsigned
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L _ast_int4_t
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L tv_nsec
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinNanosecond resolution.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.PP
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinIn practice resolution is much coarser than 1 nanosecond.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinSystems that only support 1 second resolution always set
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L tv_nsec
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinto 0.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SS "int tvgettime(Tv_t* tv)"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinSets
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L tv
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinto the current time.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L 0
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinis returned on success,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L -1
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinon error.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SS "int tvsettime(const Tv_t* tv)"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinSets the system time to
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.LR tv .
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinThe caller must have sufficient privilege.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L 0
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinis returned on success,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L -1
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinon error.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SS "int tvcmp(const Tv_t* av, const Tv_t* bv)"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinCompares the times
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L av
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinand
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L bv
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinand returns
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L -1
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinif
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L av
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinis less than
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.LR bv ,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L 0
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinif
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L av
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinis equal to
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.LR bv ,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinand
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L 1
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinif
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L av
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinis greater than
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.LR bv .
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
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L tv
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinto the
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L st
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinthe access, modify, or change time, respectively.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinThe seconds portion of
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L tv
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
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L st
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinaccess, modify, or change time, respectively, to
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.LR tv .
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinThe seconds portion of
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L tv
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
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L path
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinaccess time from
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.LR av ,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinmodify time from
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.LR mv ,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinand change time from
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.LR cv .
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinAny of
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.LR av ,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.LR mv ,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinand
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L cv
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinmay be 0; the corresponding file time will retain the previous value if
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L path
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinexists and
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L copy
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinis
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L 1 ;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinotherwise the corresponding file time will be set to the current time.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L 0
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinis returned on success,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L -1
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinon error.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SS "int tvsleep(const Tv_t* tv, Tv_t* rv)"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinPauses execution for
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L tv
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chintime.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L 0
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinis returned if the full
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L tv
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinamount has expired.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinOtherwise
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L -1
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinis returned and
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.LR rv ,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinif not 0, is set to the sleep time remaining.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SH "RETURN VALUE"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinExcept for
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.LR tvcmp() ,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinan error return of
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L -1
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinalso sets
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L errno
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinto the corresponding error code.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SH "SEE ALSO"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chintm(3)