Man Linux: Main Page and Category List

NAME

       asctime, asctime_r - convert date and time to a string

SYNOPSIS

       #include <time.h>

       char *asctime(const struct tm *timeptr);

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

DESCRIPTION

       For  asctime():   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.

       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.

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

       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.

       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.

       The following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       Values for the broken-down time structure can be  obtained  by  calling
       gmtime()  or  localtime().  This function is included for compatibility
       with older implementations, and does not  support  localized  date  and
       time  formats.   Applications  should use strftime() 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() , ctime() , difftime() , gmtime() , localtime()  ,  mktime()  ,
       strftime()  ,  strptime()  ,  time()  ,  utime() , the Base Definitions
       volume of IEEE Std 1003.1-2001, <time.h>

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 .