NAME |LIBRARY |SYNOPSIS |DESCRIPTION |RETURN VALUE |ERRORS |STANDARDS |HISTORY |SEE ALSO |COLOPHON | |
timeradd(3) Library Functions Manualtimeradd(3)timeradd, timersub, timercmp, timerclear, timerisset - timeval operations
Standard C library (libc,-lc)
#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 (seefeature_test_macros(7)): All functions shown above: Since glibc 2.19: _DEFAULT_SOURCE glibc 2.19 and earlier: _BSD_SOURCE
The macros are provided to operate ontimeval structures, defined in<sys/time.h> as: struct timeval { time_t tv_sec; /* seconds */ suseconds_t tv_usec; /* microseconds */ };timeradd() adds the time values ina andb, and places the sum in thetimeval pointed to byres. The result is normalized such thatres->tv_usec has a value in the range 0 to 999,999.timersub() subtracts the time value inb from the time value ina, and places the result in thetimeval pointed to byres. The result is normalized such thatres->tv_usec has a value in the range 0 to 999,999.timerclear() zeros out thetimeval structure pointed to bytvp, so that it represents the Epoch: 1970-01-01 00:00:00 +0000 (UTC).timerisset() returns true (nonzero) if either field of thetimeval structure pointed to bytvp contains a nonzero value.timercmp() compares the timer values ina andb using the comparison operatorCMP, and returns true (nonzero) or false (0) depending on the result of the comparison. Some systems (but not Linux/glibc), have a brokentimercmp() implementation, in whichCMP of>=,<=, and== do not work; portable applications can instead use !timercmp(..., <) !timercmp(..., >) !timercmp(..., !=)timerisset() andtimercmp() return true (nonzero) or false (0).
No errors are defined.
None.
BSD.
gettimeofday(2),time(7)
This page is part of theman-pages (Linux kernel and C library user-space interface documentation) project. Information about the project can be found at ⟨https://www.kernel.org/doc/man-pages/⟩. If you have a bug report for this manual page, see ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩. This page was obtained from the tarball man-pages-6.15.tar.gz fetched from ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on 2025-08-11. If you discover any rendering problems in this HTML version of the page, or you believe there is a better or more up- to-date source for the page, or you have corrections or improvements to the information in this COLOPHON (which isnot part of the original manual page), send a mail to man-pages@man7.orgLinux man-pages 6.15 2025-05-17timeradd(3)Pages that refer to this page:gettimeofday(2), timeval(3type), time(7)
HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface. For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere. Hosting byjambit GmbH. | ![]() |