NAME
timeradd —
operations on time
structure
SYNOPSIS
#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 *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);
DESCRIPTION
These macros are provided for manipulating the
timeval and
timespec structures described in
timeval(3).
The
timeradd() and
timespecadd() 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
timersub() and
timespecsub() macros
subtract the time information stored in
b from
a and store the resulting structure in
res.
The
timerclear() and
timespecclear() 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
timerisset() and
timespecisset() macros
return true if the input structure is set to any time value other than the
Epoch.
The
timercmp() and
timespeccmp() macros
compare
a to
b using the
comparison operator given in
CMP. The result of the
comparison is returned.
SEE ALSO
timeval(3)
HISTORY
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.