TIMERADD(3)

NAME
timerclear, timerisset, timerisvalid, timercmp, timersub, timeradd, timespecclear, timespecisset, timespecisvalid, timespeccmp, timespecsub, timespecadd - 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);

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.

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, timersub() and timeradd() in NetBSD 1.1, and timerisvalid() in OpenBSD 6.5.