timeradd(3bsd) 3bsd timeradd(3bsd)

timeradd, timersub, timerclear, timerisset, timercmp, timespecadd, timespecsub, timespecclear, timespecisset, timespeccmpoperations on time structure

library “libbsd”

#include <sys/time.h> (See libbsd(7) for include usage.)
void
timeradd(struct timeval *a, struct timeval *b, struct timeval *res);

void
timersub(struct timeval *a, struct timeval *b, struct timeval *res);

void
timerclear(struct timeval *tv);

int
timerisset(struct timeval *tv);

int
timercmp(struct timeval *a, struct timeval *b, CMP);

void
timespecadd(struct timespec *a, struct timespec *b, struct timespec *res);

void
timespecsub(struct timespec *a, struct timespec *b, struct timespec *res);

void
timespecclear(struct timespec *ts);

int
timespecisset(struct timespec *ts);

int
timespeccmp(struct timespec *a, struct timespec b, CMP);

These macros are provided for manipulating the timeval and timespec structures described in timeval(3bsd).

The () and () macros add the time information stored in a to b, storing the result in res. With timeradd() the results are simplified such that the value of res->tv_usec is always less than 1,000,000 (1 second). With timespecadd() the res->tv_nsec member of struct timespec is always less than 1,000,000,000.

The () and () macros subtract the time information stored in b from a and store the resulting structure in res.

The () and () macros initialize the structures to midnight (0 hour) January 1st, 1970 (the Epoch). In other words, they set the members of the structure to zero.

The () and () macros return true if the input structure is set to any time value other than the Epoch.

The () and () macros compare a to b using the comparison operator given in CMP. The result of the comparison is returned.

timeval(3bsd)

The timeradd() family of macros first appeared in NetBSD 1.1. These were later ported to FreeBSD 2.2.6. The timespec() family of macros first appeared in NetBSD 1.2.

June 7, 2010 Linux 6.10.10-arch1-1