Caution: This version of this document is no longer maintained. For the latest documentation, see

asctime(), asctime_r()

Convert time information to a string


#include <time.h>

char* asctime( const struct tm* timeptr );

char* asctime_r( const struct tm* timeptr, 
                 char* buf );


A pointer to a tm structure that contains the time that you want to convert to a string.
(asctime_r() only) A buffer in which asctime_r() can store the resulting string. This buffer must be large enough to hold at least 26 characters.



Use the -l c option to qcc to link against this library. This library is usually included automatically.


The asctime() and asctime_r() functions convert the time information in the structure pointed to by timeptr into a string containing exactly 26 characters, in the form:

Tue May  7 10:40:27 2002\n\0

Note: The asctime() function places the result string in a static buffer that's reused every time you call asctime() or ctime(). Calling gmtime() or localtime() could also change the date in this static buffer.

The result string for asctime_r() is contained in the buffer pointed to by buf.

All fields have a constant width. The newline character ('\n') and a NUL character ('\0') occupy the last two positions of the string.


A pointer to the character string result, or NULL if an error occurred.


asctime() is ANSI, POSIX 1003.1; asctime_r() is POSIX 1003.1 TSF


Cancellation point No
Interrupt handler No
Signal handler No
Thread No


Cancellation point No
Interrupt handler No
Signal handler Yes
Thread Yes


The asctime() and ctime() functions place their results in a static buffer that's reused for each call to asctime() or ctime().

See also:

clock(), ctime(), difftime(), gmtime(), localtime(), localtime_r(), mktime(), strftime(), time(), tm, tzset()