x SuSE Linux 13.1-RELEASE x
x SuSE Linux 13.1-RELEASEx
TIMEVAL(3bsd) LOCAL TIMEVAL(3bsd)
NAME
timeval, timespec -- time structures
LIBRARY
library "libbsd"
SYNOPSIS
#include <sys/time.h>
(See libbsd(7) for include usage.)
void
TIMEVAL_TO_TIMESPEC(struct timeval *tv, struct timespec *ts);
void
TIMESPEC_TO_TIMEVAL(struct timeval *tv, struct timespec *ts);
DESCRIPTION
The <sys/time.h> header, included by <time.h>, defines various structures
related to time and timers.
1. The following structure is used by gettimeofday(2), among others:
struct timeval {
time_t tv_sec;
suseconds_t tv_usec;
};
The tv_sec member represents the elapsed time, in whole seconds.
The tv_usec member captures rest of the elapsed time, represented
as the number of microseconds.
2. The following structure is used by nanosleep(2), among others:
struct timespec {
time_t tv_sec;
long tv_nsec;
};
The tv_sec member is again the elapsed time in whole seconds. The
tv_nsec member represents the rest of the elapsed time in nanosec-
onds.
A microsecond is equal to one millionth of a second, 1000 nanosec-
onds, or 1/1000 milliseconds. To ease the conversions, the macros
TIMEVAL_TO_TIMESPEC() and TIMESPEC_TO_TIMEVAL() can be used to con-
vert between struct timeval and struct timespec.
EXAMPLES
It can be stressed that the traditional UNIX timeval and timespec struc-
tures represent elapsed time, measured by the system clock. The follow-
ing sketch implements a function suitable for use in a context where the
timespec structure is required for a conditional timeout:
static void
example(struct timespec *spec, time_t minutes)
{
struct timeval elapsed;
(void)gettimeofday(&elapsed, NULL);
_DIAGASSERT(spec != NULL);
TIMEVAL_TO_TIMESPEC(&elapsed, spec);
/* Add the offset for timeout in minutes. */
spec->tv_sec = spec->tv_sec + minutes * 60;
}
A better alternative would use the more precise clock_gettime(2).
SEE ALSO
timeradd(3bsd)
BSD April 12, 2011 BSD
Want to link to this manual page? Use this URL:
<https://star2.abcm.com/cgi-bin/bsdi-man?query=timeval&sektion=3bsd&manpath=>