The Open Group Base Specifications Issue 6
IEEE Std 1003.1, 2004 Edition
Copyright © 2001-2004 The IEEE and The Open Group, All Rights reserved.
A newer edition of this document exists here


ctime, ctime_r - convert a time value to a date and time string


#include <time.h>

char *ctime(const time_t *

[TSF] [Option Start] char *ctime_r(const time_t *clock, char *buf); [Option End]


For ctime(): [CX] [Option Start] 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 defers to the ISO C standard. [Option End]

The ctime() function shall convert the time pointed to by clock, representing time in seconds since the Epoch, to local time in the form of a string. It shall be equivalent to:


[CX] [Option Start] The asctime(), ctime(), gmtime(), and localtime() functions shall return values in one of two static objects: a broken-down time structure and an array of char. Execution of any of the functions may overwrite the information returned in either of these objects by any of the other functions.

The ctime() function need not be reentrant. A function that is not required to be reentrant is not required to be thread-safe. [Option End]

[TSF] [Option Start] The ctime_r() function shall convert the calendar time pointed to by clock to local time in exactly the same form as ctime() and put the string into the array pointed to by buf (which shall be at least 26 bytes in size) and return buf.

Unlike ctime(), the thread-safe version ctime_r() is not required to set tzname. [Option End]


The ctime() function shall return the pointer returned by asctime() with that broken-down time as an argument.

[TSF] [Option Start] Upon successful completion, ctime_r() shall return a pointer to the string pointed to by buf. When an error is encountered, a null pointer shall be returned. [Option End]


No errors are defined.

The following sections are informative.




Values for the broken-down time structure can be obtained by calling gmtime() or localtime(). The ctime() function is included for compatibility with older implementations, and does not support localized date and time formats. Applications should use the strftime() function to achieve maximum portability.

The ctime_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.






asctime(), clock(), difftime(), gmtime(), localtime() , mktime(), strftime(), strptime(), time(), utime(), the Base Definitions volume of IEEE Std 1003.1-2001, <time.h>


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 ctime_r() function is included for alignment with the POSIX Threads Extension.

A note indicating that the ctime() function need not be reentrant is added to the DESCRIPTION.

Issue 6

Extensions beyond the ISO C standard are marked.

In the DESCRIPTION, the note about reentrancy is expanded to cover thread-safety.

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.

End of informative text.

UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
[ Main Index | XBD | XCU | XSH | XRAT ]