Name
timeradd, timersub, timercmp, timerclear, timerisset - timeval operationsLibrary
Standard C library ( libc ", " -lc )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 * tvp );
int timerisset(struct timeval * tvp );
int timercmp(struct timeval *" a ", struct timeval *" b ", CMP );
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
All functions shown above:
Since glibc 2.19: _DEFAULT_SOURCE glibc 2.19 and earlier: _BSD_SOURCE
Description
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.Standards
None.History
BSD.See Also
- gettimeofday(2),
- time(7)