.TH TIME 2 .SH NAME bintime, time, nsec \- time in seconds and nanoseconds since epoch .SH SYNOPSIS .B #include .br .B #include .PP .nf .B int bintime(int fd, vlong *nsec, vlong *ticks, vlong *hz) .PP .B long time(long *tp) .PP .B vlong nsec(void) .SH DESCRIPTION Both .I time and .I nsec return the time since the epoch 00:00:00 GMT, Jan. 1, 1970. The return value of the former is in seconds and the latter in nanoseconds. For .IR time , if .I tp is not zero then .BI * tp is also set to the answer. .PP These functions work by reading .BR /dev/bintime , opening that file when they are first called. .PP .B Bintime reads from .BR fd instead. It is assumed to have the format of .BR "/dev/bintime" . If .B fd is -1, then .B "/dev/bintime" is opened. The non-null .B vlong arguments are set to nanoseconds since start of epoch, hardware clock ticks, and hardware clock frequency. The given file descriptor is returned on success. On failure, the file descriptor is closed and .B -1 is returned. .SH SOURCE .B /sys/src/libc/9sys/bintime.c .br .B /sys/src/libc/9sys/time.c .br .B /sys/src/libc/9sys/nsec.c .SH SEE ALSO .IR cputime (2), .IR cons (3) .SH DIAGNOSTICS Sets .IR errstr . .SH BUGS Both .I time and .I nsec maintain a static file descriptor. This can cause problems with programs that share memory but not file descriptors. Use .I bintime instead.