<<<
Previous
Next >>>
The Open Group Base Specifications Issue 7, 2018 edition
IEEE Std 1003.1-2017 (Revision of IEEE Std 1003.1-2008)
Copyright © 2001-2018 IEEE and The Open Group
A newer edition of this document exists
here
NAME
time.h - time types
SYNOPSIS
#include
DESCRIPTION
CX
Some of the functionality described on this reference page extends the ISO C standard. Applications shall define
the appropriate feature test macro (see XSH
The Compilation Environment
) to enable the visibility of these symbols in this header.
The
header shall define the
clock_t
size_t
time_t
, types as described in
CX
The
header shall define the
clockid_t
and
timer_t
types as described in
The
header shall define the
locale_t
type as described in
CPT
The
header shall define the
pid_t
type as described in
CX
The
tag
sigevent
shall be declared as naming an incomplete structure type, the contents of which are described in the
header.
The
header shall declare the
tm
structure, 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.
CX
The
header shall declare the
timespec
structure, which shall include at least the following members:
time_t tv_sec
Seconds.
long tv_nsec
Nanoseconds.
The
header shall also declare the
itimerspec
structure, which shall include at least the following
members:
struct timespec it_interval
Timer period.
struct timespec it_value
Timer expiration.
The
header shall define the following macros:
NULL
As described in
CLOCKS_PER_SEC
A number used to convert the value returned by the
clock
()
function into seconds.
The value shall be an expression with type
clock_t
XSI
The value of CLOCKS_PER_SEC shall be 1 million on XSI-conformant
systems. However, it may be variable on other systems, and it should not be assumed that CLOCKS_PER_SEC is a compile-time constant.
CX
The
header shall define the following symbolic constants. The values shall have a type that is
assignment-compatible with
clockid_t
CLOCK_MONOTONIC
MON
The identifier for the system-wide monotonic clock, which is defined as a clock measuring real time, whose value cannot be set via
clock_settime
()
and which cannot have negative clock jumps. The maximum
possible clock jump shall be implementation-defined.
CLOCK_PROCESS_CPUTIME_ID
CPT
The identifier of the CPU-time clock associated with the process making a
clock
()
or
timer*
() function call.
CLOCK_REALTIME
CX
The identifier of the system-wide clock measuring real time.
CLOCK_THREAD_CPUTIME_ID
TCT
The identifier of the CPU-time clock associated with the thread making a
clock
()
or
timer*
() function call.
CX
The
header shall define the following symbolic constant:
TIMER_ABSTIME
Flag indicating time is absolute. For functions taking timer objects, this refers to the clock associated with the timer.
XSI
The
header shall provide a declaration or definition for
getdate_err
. The
getdate_err
symbol
shall expand to an expression of type
int
. It is unspecified whether
getdate_err
is a macro or an identifier declared
with external linkage, and whether or not it is a modifiable lvalue. If a macro definition is suppressed in order to access an
actual object, or a program defines an identifier with the name
getdate_err
, the behavior is undefined.
The following shall be declared as functions and may also be defined as macros. Function prototypes shall be provided.
OB
char *asctime(const struct tm *);
OB CX
char *asctime_r(const struct tm *restrict, char *restrict);
clock_t clock(void);
CPT
int clock_getcpuclockid(pid_t, clockid_t *);
CX
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 *);
OB
char *ctime(const time_t *);
OB CX
char *ctime_r(const time_t *, char *);
double difftime(time_t, time_t);
XSI
struct tm *getdate(const char *);
struct tm *gmtime(const time_t *);
CX
struct tm *gmtime_r(const time_t *restrict, struct tm *restrict);
struct tm *localtime(const time_t *);
CX
struct tm *localtime_r(const time_t *restrict, struct tm *restrict);
time_t mktime(struct tm *);
CX
int nanosleep(const struct timespec *, struct timespec *);
size_t strftime(char *restrict, size_t, const char *restrict,
const struct tm *restrict);
CX
size_t strftime_l(char *restrict, size_t, const char *restrict,
const struct tm *restrict, locale_t);
XSI
char *strptime(const char *restrict, const char *restrict,
struct tm *restrict);
time_t time(time_t *);
CX
int timer_create(clockid_t, struct sigevent *restrict,
timer_t *restrict);
int timer_delete(timer_t);
int timer_getoverrun(timer_t);
int timer_gettime(timer_t, struct itimerspec *);
int timer_settime(timer_t, int, const struct itimerspec *restrict,
struct itimerspec *restrict);
void tzset(void);
The
header shall declare the following as variables:
XSI
extern int daylight;
extern long timezone;
CX
extern char *tzname[];
CX
Inclusion of the
header may make visible all symbols from the
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
earlier versions of this standard.
FUTURE DIRECTIONS
None.
SEE ALSO
XSH
The Compilation Environment
asctime
clock
clock_getcpuclockid
clock_getres
clock_nanosleep
ctime
difftime
getdate
gmtime
localtime
mktime
mq_receive
mq_send
nanosleep
pthread_getcpuclockid
pthread_mutex_timedlock
pthread_rwlock_timedrdlock
pthread_rwlock_timedwrlock
sem_timedwait
strftime
strptime
sysconf
time
timer_create
timer_delete
timer_getoverrun
tzset
utime
CHANGE HISTORY
First released in Issue 1. Derived from Issue 1 of the SVID.
Issue 5
The DESCRIPTION is updated for alignment with the POSIX Realtime Extension and the POSIX Threads Extension.
Issue 6
The Open Group Corrigendum U035/6 is applied. In the DESCRIPTION, the types
clockid_t
and
timer_t
have been
described.
The following changes are made for alignment with the ISO POSIX-1:1996 standard:
The POSIX timer-related functions are marked as part of the Timers option.
The symbolic name CLK_TCK is removed. Application usage is added describing how its equivalent functionality can be obtained
using
sysconf
()
The
clock_getcpuclockid
()
function and manifest constants
CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID are added for alignment with IEEE Std 1003.1d-1999.
The manifest constant CLOCK_MONOTONIC and the
clock_nanosleep
()
function
are added for alignment with IEEE Std 1003.1j-2000.
The following changes are made for alignment with the ISO/IEC 9899:1999 standard:
The range for seconds is changed from [0,61] to [0,60].
The
restrict
keyword is added to the prototypes for
asctime_r
()
gmtime_r
()
localtime_r
()
strftime
()
strptime
()
timer_create
()
, and
timer_settime
()
IEEE PASC Interpretation 1003.1 #84 is applied adding the statement that symbols from the
header may be made visible when the
header is
included.
Extensions beyond the ISO C standard are marked.
Issue 7
Austin Group Interpretation 1003.1-2001 #111 is applied.
SD5-XBD-ERN-74 is applied.
The
strftime_l
()
function is added from The Open Group Technical Standard,
2006, Extended API Set Part 4.
Functionality relating to the Timers option is moved to the Base.
This reference page is clarified with respect to macros and symbolic constants, and declarations for the
locale_t
and
pid_t
types and the
sigevent
structure are added.
The description of the
getdate_err
value is expanded.
POSIX.1-2008, Technical Corrigendum 1, XBD/TC1-2008/0076 [212] and XBD/TC1-2008/0077 [212] are applied.
End of informative text.
return to top of page
UNIX ® is a registered Trademark of The Open Group.
POSIX ™ is a Trademark of The IEEE.
Copyright © 2001-2018 IEEE and The Open Group, All Rights Reserved
Main Index
XBD
XSH
XCU
XRAT
<<<
Previous
Next >>>
US