NAME
timerclear,
timerisset, timerisvalid,
timercmp, timersub,
timeradd, timespecclear,
timespecisset,
timespecisvalid,
timespeccmp, timespecsub,
timespecadd,
TIMEVAL_TO_TIMESPEC,
TIMESPEC_TO_TIMEVAL —
manipulate time structures
SYNOPSIS
#include
<sys/time.h>
void
timerclear(struct
timeval *a);
int
timerisset(struct
timeval *a);
int
timerisvalid(struct
timeval *a);
int
timercmp(struct
timeval *a, struct
timeval *b,
operator);
void
timersub(struct
timeval *a, struct
timeval *b, struct
timeval *c);
void
timeradd(struct
timeval *a, struct
timeval *b, struct
timeval *c);
void
timespecclear(struct
timespec *a);
int
timespecisset(struct
timespec *a);
int
timespecisvalid(struct
timespec *a);
int
timespeccmp(struct
timespec *a, struct
timespec *b,
operator);
void
timespecsub(struct
timespec *a, struct
timespec *b, struct
timespec *c);
void
timespecadd(struct
timespec *a, struct
timespec *b, struct
timespec *c);
void
TIMEVAL_TO_TIMESPEC(struct
timeval *tv, struct
timespec *ts);
void
TIMESPEC_TO_TIMEVAL(struct
timeval *tv, struct
timespec *ts);
DESCRIPTION
The
timer*()
and
timespec*()
macros defined in
<sys/time.h> simplify the
use of timeval and timespec
structures, respectively.
The following macros are available:
timerclear(a),timespecclear(a)- Set the time value in a to zero.
timerisset(a),timespecisset(a)- Test if the time value in a is non-zero.
timerisvalid(a)- Test if the microsecond value in a is greater than or equal to zero and less than one million.
timespecisvalid(a)- Test if the nanosecond value in a is greater than or equal to zero and less than one billion.
timercmp(a, b, operator),timespeccmp(a, b, operator)- Test if the expression a operator b is true, where
operator is one of
<,<=,==,!=,>=, or>. timersub(a, b, c),timespecsub(a, b, c)- Subtract b from a and store the result in c.
timeradd(a, b, c),timespecadd(a, b, c)- Add b to a and store the result in c.
TIMEVAL_TO_TIMESPEC(tv, ts)- Convert tv to a struct timespec and store the result in ts.
TIMESPEC_TO_TIMEVAL(tv, ts)- Convert ts to a struct timeval and store the result in tv.
RETURN VALUES
The macros returning int return 1 if the tested condition holds or 0 otherwise.
SEE ALSO
adjtime(2), clock_gettime(2), futex(2), futimens(2), futimes(2), getitimer(2), gettimeofday(2), kevent(2), nanosleep(2), ppoll(2), pselect(2)
STANDARDS
These macros are non-standard, though many systems offer them. Similar interfaces are often available in their absence.
HISTORY
The macros timerclear(),
timerisset(), and timercmp()
first appeared in 4.1cBSD,
TIMEVAL_TO_TIMESPEC() and
TIMESPEC_TO_TIMEVAL() in
4.4BSD, timersub() and
timeradd() in NetBSD 1.1,
and timerisvalid() in OpenBSD
6.5.
CAVEATS
The argument ordering for
TIMESPEC_TO_TIMEVAL() is unintuitive.