Provided by: manpages-posix-dev_2.16-1_all bug

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 .