NAME
asctime asctime_r
— convert date and time to a string
SYNOPSIS
#include
<time.h>
char *asctime(const struct tm *timeptr); [TSF] char *asctime_r(const struct tm *restrict tm, char *restrict buf);
DESCRIPTION
For asctime (): [CX] The
functionality described on this reference page is aligned with the ISO C
standard. Any conflict between the requirements described here and the ISO C
standard is unintentional. This volume of IEEE Std
1003.1-2001 (“POSIX.1”) defers to the ISO C
standard.
The asctime () function shall
convert the broken-down time in the structure pointed to by
timeptr into a
string in the form:
Sun Sep 16 01:03:52 1973\n\0
using the equivalent of the following algorithm:
char *asctime(const struct tm *timeptr)
{
static char wday_name[7][3] = {
"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
};
static char mon_name[12][3] = {
"Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
};
static char result[26];
sprintf(result, "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n",
wday_name[timeptr->tm_wday],
mon_name[timeptr->tm_mon],
timeptr->tm_mday, timeptr->tm_hour,
timeptr->tm_min, timeptr->tm_sec,
1900 + timeptr->tm_year);
return result;
}
The tm structure is defined in the <time.h> header.
[CX] The
asctime (), ctime(3),
gmtime(3), and localtime(3) functions
shall return values in one of two static objects: a broken-down time
structure and an array of type
char. Execution of
any of the functions may overwrite the information returned in either of
these objects by any of the other functions.
The asctime () function need not be
reentrant. A function that is not required to be reentrant is not required
to be thread-safe.
[TSF] The asctime_r ()
function shall convert the broken-down time in the structure pointed to by
tm into a string (of the same form as that returned by
asctime ()) that is placed in the user-supplied
buffer pointed to by buf (which shall contain at least 26
bytes) and then return buf.
RETURN VALUE
Upon successful completion, asctime ()
shall return a pointer to the string. [CX] If the function
is unsuccessful, it shall return NULL.
[TSF] Upon successful completion,
asctime_r () shall return a pointer to a character
string containing the date and time. This string is pointed to by the
argument buf. If the function is unsuccessful, it shall
return NULL.
ERRORS
No errors are defined.
EXAMPLES
None.
APPLICATION USAGE
Values for the broken-down time structure can be obtained by calling gmtime(3) or localtime(3). This function is included for compatibility with older implementations, and does not support localized date and time formats. Applications should use strftime(3) to achieve maximum portability.
The asctime_r () function is thread-safe
and shall return values in a user-supplied buffer instead of possibly using
a static data area that may be overwritten by each call.
RATIONALE
None.
FUTURE DIRECTIONS
None.
SEE ALSO
clock(3), ctime(3), difftime(3), gmtime(3), localtime(3) , mktime(3), strftime(3), strptime(3), time(3), utime(3), the Base Definitions volume of IEEE Std 1003.1-2001 (“POSIX.1”), <time.h>
CHANGE HISTORY
First released in Issue 1. Derived from Issue 1 of the SVID.
Issue 5
Normative text previously in the APPLICATION USAGE section is moved to the DESCRIPTION.
The asctime_r () function is included for
alignment with the POSIX Threads Extension.
A note indicating that the asctime ()
function need not be reentrant is added to the DESCRIPTION.
Issue 6
The asctime_r () function is marked as
part of the Thread-Safe Functions option.
Extensions beyond the ISO C standard are marked.
The APPLICATION USAGE section is updated to include a note on the thread-safe function and its avoidance of possibly using a static data area.
The DESCRIPTION of asctime_r () is updated
to describe the format of the string returned.
The
restrict keyword
is added to the asctime_r () prototype for alignment
with the ISO/IEC 9899:1999
(“ISO C99”) standard.
IEEE Std 1003.1-2001
(“POSIX.1”)/Cor 2-2004, item XSH/TC2/D6/17 is applied,
adding the CX extension in the RETURN VALUE section requiring that if the
asctime () function is unsuccessful it returns
NULL.
End of informative text. footer end