timercmp3
Timeval operations
Part of timeradd(3).
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
*tvp);
int
timerisset(struct
timeval
*tvp);
int timercmp(struct
timeval
*a,
struct
timeval
*b,
CMP);
All functions
shown
above:
Since glibc
2.19:
_DEFAULT_SOURCE
glibc 2.19
and
earlier:
_BSD_SOURCE
Library
Standard C library (libc, -lc)
Overview
The macros are provided to operate on timeval structures, defined in <sys/time.h> as:
struct timeval {
time_t tv_sec; /* seconds */
suseconds_t tv_usec; /* microseconds */
};
timeradd() adds the time values in a and b, and places the sum in the timeval pointed to by res. The result is normalized such that res->tv_usec has a value in the range 0 to 999,999.
timersub() subtracts the time value in b from the time value in a, and places the result in the timeval pointed to by res. The result is normalized such that res->tv_usec has a value in the range 0 to 999,999.
timerclear() zeros out the timeval structure pointed to by tvp, so that it represents the Epoch: 1970-01-01 00:00:00 +0000 (UTC).
timerisset() returns true (nonzero) if either field of the timeval structure pointed to by tvp contains a nonzero value.
timercmp() compares the timer values in a and b using the comparison operator CMP, and returns true (nonzero) or false (0) depending on the result of the comparison. Some systems (but not Linux/glibc), have a broken timercmp() implementation, in which CMP of >=, <=, and == do not work; portable applications can instead use
!timercmp(..., <) !timercmp(..., >) !timercmp(..., !=)
Return value
timerisset() and timercmp() return true (nonzero) or false (0).
Errors
No errors are defined.
History
- Arch Linux 2026-11-01: the text shown here
- Debian 13 (Trixie)
- Debian 12 (Bookworm)
- Debian 11 (Bullseye)
- Debian 10 (Buster)
- Debian 9 (Stretch)
- Debian 8 (Jessie)
- Debian 7 (Wheezy)
- Debian 6.0 (Squeeze)
- Debian 5.0 (Lenny)