man.bsd.lv manual page server

Manual Page Search Parameters

TIMERADD(3) Library Functions Manual TIMERADD(3)

timeradd, timersub, timerclear, timerisset, timercmp, timespecadd, timespecsub, timespecclear, timespecisset, timespeccmpoperations on timevals and timespecs

#include <sys/time.h>

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 *tvp);

int
timerisset(struct timeval *tvp);

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 timeval and timespec structures for use with the clock_gettime(2), clock_settime(2), gettimeofday(2) and settimeofday(2) calls. The timeval structure is defined in <sys/time.h> as:
struct timeval {
	long	tv_sec;		/* seconds since Jan. 1, 1970 */
	long	tv_usec;	/* and microseconds */
};
And the timespec structure is defined in <time.h> as:
struct timespec {
	time_t tv_nsec;		/* seconds */
	long   tv_nsec;		/* and nanoseconds */
};

() and () add the time information stored in a to b and store the result in res. The results are simplified such that the value of res->tv_usec or res->tv_nsec is always less than 1 second.

() and () subtract the time information stored in b from a and store the result in res.

() and () initialize their argument to midnight (0 hour) January 1st, 1970 (the Epoch).

() and () return true if their argument is set to any time value other than the Epoch.

() and () compare a to b using the comparison operator given in CMP, and return the result of that comparison.

gettimeofday(2), clock_gettime(2)

The timeradd() family of macros were imported from NetBSD 1.1, and appeared in FreeBSD 2.2.6. The timespecadd() family of macros were imported from NetBSD 1.3 into FreeBSD 3.0, though they were not exposed to userland until FreeBSD 12.0.

July 30, 2018 FreeBSD-12.0