summaryrefslogtreecommitdiff
path: root/newctime.3.txt
diff options
context:
space:
mode:
Diffstat (limited to 'newctime.3.txt')
-rw-r--r--newctime.3.txt171
1 files changed, 171 insertions, 0 deletions
diff --git a/newctime.3.txt b/newctime.3.txt
new file mode 100644
index 000000000000..2957a6ce9355
--- /dev/null
+++ b/newctime.3.txt
@@ -0,0 +1,171 @@
+NEWCTIME(3) Library Functions Manual NEWCTIME(3)
+
+NAME
+ asctime, ctime, difftime, gmtime, localtime, mktime - convert date and
+ time
+
+SYNOPSIS
+ #include <time.h>
+
+ extern char *tzname[]; /* (optional) */
+
+ char *ctime(time_t const *clock);
+
+ char *ctime_r(time_t const *clock, char *buf);
+
+ double difftime(time_t time1, time_t time0);
+
+ char *asctime(struct tm const *tm);
+
+ char *asctime_r(struct tm const *restrict tm,
+ char *restrict result);
+
+ struct tm *localtime(time_t const *clock);
+
+ struct tm *localtime_r(time_t const *restrict clock,
+ struct tm *restrict result);
+
+ struct tm *localtime_rz(timezone_t restrict zone,
+ time_t const *restrict clock,
+ struct tm *restrict result);
+
+ struct tm *gmtime(time_t const *clock);
+
+ struct tm *gmtime_r(time_t const *restrict clock,
+ struct tm *restrict result);
+
+ time_t mktime(struct tm *tm);
+
+ time_t mktime_z(timezone_t restrict zone,
+ struct tm *restrict tm);
+
+ cc ... -ltz
+
+DESCRIPTION
+ Ctime converts a long integer, pointed to by clock, and returns a
+ pointer to a string of the form
+ Thu Nov 24 18:22:48 1986\n\0
+ Years requiring fewer than four characters are padded with leading
+ zeroes. For years longer than four characters, the string is of the
+ form
+ Thu Nov 24 18:22:48 81986\n\0
+ with five spaces before the year. These unusual formats are designed
+ to make it less likely that older software that expects exactly 26
+ bytes of output will mistakenly output misleading values for out-of-
+ range years.
+
+ The *clock timestamp represents the time in seconds since 1970-01-01
+ 00:00:00 Coordinated Universal Time (UTC). The POSIX standard says
+ that timestamps must be nonnegative and must ignore leap seconds. Many
+ implementations extend POSIX by allowing negative timestamps, and can
+ therefore represent timestamps that predate the introduction of UTC and
+ are some other flavor of Universal Time (UT). Some implementations
+ support leap seconds, in contradiction to POSIX.
+
+ Localtime and gmtime return pointers to "tm" structures, described
+ below. Localtime corrects for the time zone and any time zone
+ adjustments (such as Daylight Saving Time in the United States). After
+ filling in the "tm" structure, localtime sets the tm_isdst'th element
+ of tzname to a pointer to a string that's the time zone abbreviation to
+ be used with localtime's return value.
+
+ Gmtime converts to Coordinated Universal Time.
+
+ Asctime converts a time value contained in a "tm" structure to a
+ string, as shown in the above example, and returns a pointer to the
+ string.
+
+ Mktime converts the broken-down time, expressed as local time, in the
+ structure pointed to by tm into a calendar time value with the same
+ encoding as that of the values returned by the time function. The
+ original values of the tm_wday and tm_yday components of the structure
+ are ignored, and the original values of the other components are not
+ restricted to their normal ranges. (A positive or zero value for
+ tm_isdst causes mktime to presume initially that daylight saving time
+ respectively, is or is not in effect for the specified time. A
+ negative value for tm_isdst causes the mktime function to attempt to
+ divine whether daylight saving time is in effect for the specified
+ time; in this case it does not use a consistent rule and may give a
+ different answer when later presented with the same argument.) On
+ successful completion, the values of the tm_wday and tm_yday components
+ of the structure are set appropriately, and the other components are
+ set to represent the specified calendar time, but with their values
+ forced to their normal ranges; the final value of tm_mday is not set
+ until tm_mon and tm_year are determined. Mktime returns the specified
+ calendar time; If the calendar time cannot be represented, it returns
+ -1.
+
+ Difftime returns the difference between two calendar times, (time1 -
+ time0), expressed in seconds.
+
+ Ctime_r, localtime_r, gmtime_r, and asctime_r are like their unsuffixed
+ counterparts, except that they accept an additional argument specifying
+ where to store the result if successful.
+
+ Localtime_rz and mktime_z are like their unsuffixed counterparts,
+ except that they accept an extra initial zone argument specifying the
+ time zone to be used for conversion. If zone is null, UT is used;
+ otherwise, zone should be have been allocated by tzalloc and should not
+ be freed until after all uses (e.g., by calls to strftime) of the
+ filled-in tm_zone fields.
+
+ Declarations of all the functions and externals, and the "tm"
+ structure, are in the <time.h> header file. The structure (of type)
+ struct tm includes the following fields:
+
+ int tm_sec; /* seconds (0-60) */
+ int tm_min; /* minutes (0-59) */
+ int tm_hour; /* hours (0-23) */
+ int tm_mday; /* day of month (1-31) */
+ int tm_mon; /* month of year (0-11) */
+ int tm_year; /* year - 1900 */
+ int tm_wday; /* day of week (Sunday = 0) */
+ int tm_yday; /* day of year (0-365) */
+ int tm_isdst; /* is daylight saving time in effect? */
+ char *tm_zone; /* time zone abbreviation (optional) */
+ long tm_gmtoff; /* offset from UT in seconds (optional) */
+
+ Tm_isdst is non-zero if daylight saving time is in effect.
+
+ Tm_gmtoff is the offset (in seconds) of the time represented from UT,
+ with positive values indicating east of the Prime Meridian. The
+ field's name is derived from Greenwich Mean Time, a precursor of UT.
+
+ In struct tm the tm_zone and tm_gmtoff fields exist, and are filled in,
+ only if arrangements to do so were made when the library containing
+ these functions was created. Similarly, the tzname variable is
+ optional. There is no guarantee that these fields and this variable
+ will continue to exist in this form in future releases of this code.
+
+FILES
+ /usr/share/zoneinfo time zone information directory
+ /usr/share/zoneinfo/localtime local time zone file
+ /usr/share/zoneinfo/posixrules used with POSIX-style TZ's
+ /usr/share/zoneinfo/GMT for UTC leap seconds
+
+ If /usr/share/zoneinfo/GMT is absent, UTC leap seconds are loaded from
+ /usr/share/zoneinfo/posixrules.
+
+SEE ALSO
+ getenv(3), newstrftime(3), newtzset(3), time(2), tzfile(5)
+
+NOTES
+ The return values of asctime, ctime, gmtime, and localtime point to
+ static data overwritten by each call. The tzname variable (once set)
+ and the tm_zone field of a returned struct tm both point to an array of
+ characters that can be freed or overwritten by later calls to the
+ functions localtime, tzfree, and tzset, if these functions affect the
+ time zone information that specifies the abbreviation in question. The
+ remaining functions and data are thread-safe.
+
+ Asctime, asctime_r, ctime, and ctime_r behave strangely for years
+ before 1000 or after 9999. The 1989 and 1999 editions of the C
+ Standard say that years from -99 through 999 are converted without
+ extra spaces, but this conflicts with longstanding tradition and with
+ this implementation. The 2011 edition says that the behavior is
+ undefined if the year is before 1000 or after 9999. Traditional
+ implementations of these two functions are restricted to years in the
+ range 1900 through 2099. To avoid this portability mess, new programs
+ should use strftime instead.
+
+ NEWCTIME(3)