NAME
time.h - time types
SYNOPSIS
#include <time.h>
DESCRIPTION
Some of the functionality described on this reference page extends the
ISO C standard. Applications shall define the appropriate feature test
macro (see the System Interfaces volume of IEEE Std 1003.1-2001,
Section 2.2, The Compilation Environment) to enable the visibility of
these symbols in this header.
The <time.h> header shall declare the structure tm, which shall include
at least the following members:
int tm_sec Seconds [0,60].
int tm_min Minutes [0,59].
int tm_hour Hour [0,23].
int tm_mday Day of month [1,31].
int tm_mon Month of year [0,11].
int tm_year Years since 1900.
int tm_wday Day of week [0,6] (Sunday =0).
int tm_yday Day of year [0,365].
int tm_isdst Daylight Savings flag.
The value of tm_isdst shall be positive if Daylight Savings Time is in
effect, 0 if Daylight Savings Time is not in effect, and negative if
the information is not available.
The <time.h> header shall define the following symbolic names:
NULL Null pointer constant.
CLOCKS_PER_SEC
A number used to convert the value returned by the clock()
function into seconds.
CLOCK_PROCESS_CPUTIME_ID
The identifier of the CPU-time clock associated with the process
making a clock() or timer*() function call.
CLOCK_THREAD_CPUTIME_ID
The identifier of the CPU-time clock associated with the thread
making a clock() or timer*() function call.
The <time.h> header shall declare the structure timespec, which has at
least the following members:
time_t tv_sec Seconds.
long tv_nsec Nanoseconds.
The <time.h> header shall also declare the itimerspec structure, which
has at least the following members:
struct timespec it_interval Timer period.
struct timespec it_value Timer expiration.
The following manifest constants shall be defined:
CLOCK_REALTIME
The identifier of the system-wide realtime clock.
TIMER_ABSTIME
Flag indicating time is absolute. For functions taking timer
objects, this refers to the clock associated with the timer.
CLOCK_MONOTONIC
The identifier for the system-wide monotonic clock, which is
defined as a clock whose value cannot be set via clock_settime()
and which cannot have backward clock jumps. The maximum possible
clock jump shall be implementation-defined.
The clock_t, size_t, time_t, clockid_t, and timer_t types shall be
defined as described in <sys/types.h> .
Although the value of CLOCKS_PER_SEC is required to be 1 million on all
XSI-conformant systems, it may be variable on other systems, and it
should not be assumed that CLOCKS_PER_SEC is a compile-time constant.
The <time.h> header shall provide a declaration for getdate_err.
The following shall be declared as functions and may also be defined as
macros. Function prototypes shall be provided.
char *asctime(const struct tm *);
char *asctime_r(const struct tm *restrict, char *restrict);
clock_t clock(void);
int clock_getcpuclockid(pid_t, clockid_t *);
int clock_getres(clockid_t, struct timespec *);
int clock_gettime(clockid_t, struct timespec *);
int clock_nanosleep(clockid_t, int, const struct timespec *,
struct timespec *);
int clock_settime(clockid_t, const struct timespec *);
char *ctime(const time_t *);
char *ctime_r(const time_t *, char *);
double difftime(time_t, time_t);
struct tm *getdate(const char *);
struct tm *gmtime(const time_t *);
struct tm *gmtime_r(const time_t *restrict, struct tm *restrict);
struct tm *localtime(const time_t *);
struct tm *localtime_r(const time_t *restrict, struct tm *restrict);
time_t mktime(struct tm *);
int nanosleep(const struct timespec *, struct timespec *);
size_t strftime(char *restrict, size_t, const char *restrict,
const struct tm *restrict);
char *strptime(const char *restrict, const char *restrict,
struct tm *restrict);
time_t time(time_t *);
int timer_create(clockid_t, struct sigevent *restrict,
timer_t *restrict);
int timer_delete(timer_t);
int timer_gettime(timer_t, struct itimerspec *);
int timer_getoverrun(timer_t);
int timer_settime(timer_t, int, const struct itimerspec *restrict,
struct itimerspec *restrict);
void tzset(void);
The following shall be declared as variables:
extern int daylight;
extern long timezone;
extern char *tzname[];
Inclusion of the <time.h> header may make visible all symbols from the
<signal.h> header.
The following sections are informative.
APPLICATION USAGE
The range [0,60] for tm_sec allows for the occasional leap second.
tm_year is a signed value; therefore, years before 1900 may be
represented.
To obtain the number of clock ticks per second returned by the times()
function, applications should call sysconf(_SC_CLK_TCK).
RATIONALE
The range [0,60] seconds allows for positive or negative leap seconds.
The formal definition of UTC does not permit double leap seconds, so
all mention of double leap seconds has been removed, and the range
shortened from the former [0,61] seconds seen in previous versions of
POSIX.
FUTURE DIRECTIONS
None.
SEE ALSO
<signal.h> , <sys/types.h> , the System Interfaces volume of
IEEE Std 1003.1-2001, asctime(), clock(), clock_getcpuclockid(),
clock_getres(), clock_nanosleep(), ctime(), difftime(), getdate(),
gmtime(), localtime(), mktime(), nanosleep(), strftime(), strptime(),
sysconf(), time(), timer_create(), timer_delete(), timer_getoverrun(),
tzname, tzset(), utime()
COPYRIGHT
Portions of this text are reprinted and reproduced in electronic form
from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
-- Portable Operating System Interface (POSIX), The Open Group Base
Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of
Electrical and Electronics Engineers, Inc and The Open Group. In the
event of any discrepancy between this version and the original IEEE and
The Open Group Standard, the original IEEE and The Open Group Standard
is the referee document. The original Standard can be obtained online
at http://www.opengroup.org/unix/online.html .