Annotation of 43BSDReno/lib/libc/gen/ctime.3, revision 1.1

1.1     ! root        1: .\" Copyright (c) 1989 The Regents of the University of California.
        !             2: .\" All rights reserved.
        !             3: .\"
        !             4: .\" This code is derived from software contributed to Berkeley by
        !             5: .\" Arthur Olson.
        !             6: .\"
        !             7: .\" Redistribution and use in source and binary forms are permitted provided
        !             8: .\" that: (1) source distributions retain this entire copyright notice and
        !             9: .\" comment, and (2) distributions including binaries display the following
        !            10: .\" acknowledgement:  ``This product includes software developed by the
        !            11: .\" University of California, Berkeley and its contributors'' in the
        !            12: .\" documentation or other materials provided with the distribution and in
        !            13: .\" all advertising materials mentioning features or use of this software.
        !            14: .\" Neither the name of the University nor the names of its contributors may
        !            15: .\" be used to endorse or promote products derived from this software without
        !            16: .\" specific prior written permission.
        !            17: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
        !            18: .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
        !            19: .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !            20: .\"
        !            21: .\"    @(#)ctime.3     6.13 (Berkeley) 6/23/90
        !            22: .\"
        !            23: .TH CTIME 3 "June 23, 1990"
        !            24: .SH NAME
        !            25: asctime, ctime, difftime, gmtime, localtime, mktime, tzset, tzsetwall \- convert date and time to ASCII
        !            26: .SH SYNOPSIS
        !            27: .nf
        !            28: .B extern char *tzname[2];
        !            29: .PP
        !            30: .B void tzset()
        !            31: .PP
        !            32: .B void tzsetwall()
        !            33: .PP
        !            34: .B #include <sys/types.h>
        !            35: .PP
        !            36: .B char *ctime(clock)
        !            37: .B time_t *clock;
        !            38: .PP
        !            39: .B double difftime(time1, time0)
        !            40: .B time_t time1;
        !            41: .B time_t time0;
        !            42: .PP
        !            43: .B #include <time.h>
        !            44: .PP
        !            45: .B char *asctime(tm)
        !            46: .B struct tm *tm;
        !            47: .PP
        !            48: .B struct tm *localtime(clock)
        !            49: .B long *clock;
        !            50: .PP
        !            51: .B struct tm *gmtime(clock)
        !            52: .B long *clock;
        !            53: .PP
        !            54: .B time_t mktime(tm)
        !            55: .B struct tm *tm;
        !            56: .fi
        !            57: .SH DESCRIPTION
        !            58: .I Tzset
        !            59: uses the value of the environment variable
        !            60: .B TZ
        !            61: to set time conversion information used by
        !            62: .IR localtime .
        !            63: If
        !            64: .B TZ
        !            65: does not appear in the environment,
        !            66: the best available approximation to local wall clock time, as specified
        !            67: by the
        !            68: .IR tzfile (5)-format
        !            69: file
        !            70: .B localtime
        !            71: in the system time conversion information directory, is used by
        !            72: .IR localtime .
        !            73: If
        !            74: .B TZ
        !            75: appears in the environment but its value is a null string,
        !            76: Coordinated Universal Time (UTC) is used (without leap second
        !            77: correction).  If
        !            78: .B TZ
        !            79: appears in the environment and its value is not a null string:
        !            80: .IP
        !            81: if the value begins with a colon, it is used as a pathname of a file
        !            82: from which to read the time conversion information;
        !            83: .IP
        !            84: if the value does not begin with a colon, it is first used as the
        !            85: pathname of a file from which to read the time conversion information,
        !            86: and, if that file cannot be read, is used directly as a specification of
        !            87: the time conversion information.
        !            88: .PP
        !            89: When
        !            90: .B TZ
        !            91: is used as a pathname, if it begins with a slash,
        !            92: it is used as an absolute pathname; otherwise,
        !            93: it is used as a pathname relative to a system time conversion information
        !            94: directory.
        !            95: The file must be in the format specified in
        !            96: .IR tzfile (5).
        !            97: .PP
        !            98: When
        !            99: .B TZ
        !           100: is used directly as a specification of the time conversion information,
        !           101: it must have the following syntax (spaces inserted for clarity):
        !           102: .IP
        !           103: \fIstd\|offset\fR[\fIdst\fR[\fIoffset\fR][\fB,\fIrule\fR]]
        !           104: .PP
        !           105: Where:
        !           106: .RS
        !           107: .TP 15
        !           108: .IR std " and " dst
        !           109: Three or more bytes that are the designation for the standard
        !           110: .RI ( std )
        !           111: or summer
        !           112: .RI ( dst )
        !           113: time zone.  Only
        !           114: .I std
        !           115: is required; if
        !           116: .I dst
        !           117: is missing, then summer time does not apply in this locale.
        !           118: Upper- and lowercase letters are explicitly allowed.  Any characters
        !           119: except a leading colon
        !           120: .RB ( : ),
        !           121: digits, comma
        !           122: .RB ( , ),
        !           123: minus
        !           124: .RB ( \(mi ),
        !           125: plus
        !           126: .RB ( \(pl ),
        !           127: and ASCII NUL are allowed.
        !           128: .TP
        !           129: .I offset
        !           130: Indicates the value one must add to the local time to arrive at
        !           131: Coordinated Universal Time.  The
        !           132: .I offset
        !           133: has the form:
        !           134: .RS
        !           135: .IP
        !           136: \fIhh\fR[\fB:\fImm\fR[\fB:\fIss\fR]]
        !           137: .RE
        !           138: .IP
        !           139: The minutes
        !           140: .RI ( mm )
        !           141: and seconds
        !           142: .RI ( ss )
        !           143: are optional.  The hour
        !           144: .RI ( hh )
        !           145: is required and may be a single digit.  The
        !           146: .I offset
        !           147: following
        !           148: .I std
        !           149: is required.  If no
        !           150: .I offset
        !           151: follows
        !           152: .IR dst ,
        !           153: summer time is assumed to be one hour ahead of standard time.  One or
        !           154: more digits may be used; the value is always interpreted as a decimal
        !           155: number.  The hour must be between zero and 24, and the minutes (and
        !           156: seconds) \(em if present \(em between zero and 59.  If preceded by a
        !           157: .RB `` \(mi '',
        !           158: the time zone shall be east of the Prime Meridian; otherwise it shall be
        !           159: west (which may be indicated by an optional preceding
        !           160: .RB `` \(pl '').
        !           161: .TP
        !           162: .I rule
        !           163: Indicates when to change to and back from summer time.  The
        !           164: .I rule
        !           165: has the form:
        !           166: .RS
        !           167: .IP
        !           168: \fIdate\fB/\fItime\fB,\fIdate\fB/\fItime\fR
        !           169: .RE
        !           170: .IP
        !           171: where the first
        !           172: .I date
        !           173: describes when the change from standard to summer time occurs and the
        !           174: second
        !           175: .I date
        !           176: describes when the change back happens.  Each
        !           177: .I time
        !           178: field describes when, in current local time, the change to the other
        !           179: time is made.
        !           180: .IP
        !           181: The format of
        !           182: .I date
        !           183: is one of the following:
        !           184: .RS
        !           185: .TP 10
        !           186: .BI J n
        !           187: The Julian day
        !           188: .I n
        !           189: .RI "(1\ \(<=" "\ n\ " "\(<=\ 365).
        !           190: Leap days are not counted; that is, in all years \(em including leap
        !           191: years \(em February 28 is day 59 and March 1 is day 60.  It is
        !           192: impossible to explicitly refer to the occasional February 29.
        !           193: .TP
        !           194: .I n
        !           195: The zero-based Julian day
        !           196: .RI "(0\ \(<=" "\ n\ " "\(<=\ 365).
        !           197: Leap days are counted, and it is possible to refer to February 29.
        !           198: .TP
        !           199: .BI M m . n . d
        !           200: The
        !           201: .IR d' th
        !           202: day
        !           203: .RI "(0\ \(<=" "\ d\ " "\(<=\ 6)
        !           204: of week
        !           205: .I n
        !           206: of month
        !           207: .I m
        !           208: of the year
        !           209: .RI "(1\ \(<=" "\ n\ " "\(<=\ 5,
        !           210: .RI "1\ \(<=" "\ m\ " "\(<=\ 12,
        !           211: where week 5 means ``the last
        !           212: .I d
        !           213: day in month
        !           214: .IR m ''
        !           215: which may occur in either the fourth or the fifth week).  Week 1 is the
        !           216: first week in which the
        !           217: .IR d' th
        !           218: day occurs.  Day zero is Sunday.
        !           219: .RE
        !           220: .IP "" 15
        !           221: The
        !           222: .I time
        !           223: has the same format as
        !           224: .I offset
        !           225: except that no leading sign
        !           226: .RB (`` \(mi ''
        !           227: or
        !           228: .RB `` \(pl '')
        !           229: is allowed.  The default, if
        !           230: .I time
        !           231: is not given, is
        !           232: .BR 02:00:00 .
        !           233: .RE
        !           234: .LP
        !           235: If no
        !           236: .I rule
        !           237: is present in
        !           238: .BR TZ ,
        !           239: the rules specified
        !           240: by the
        !           241: .IR tzfile (5)-format
        !           242: file
        !           243: .B posixrules
        !           244: in the system time conversion information directory are used, with the
        !           245: standard and summer time offsets from UTC replaced by those specified by
        !           246: the
        !           247: .I offset
        !           248: values in
        !           249: .BR TZ .
        !           250: .PP
        !           251: For compatibility with System V Release 3.1, a semicolon
        !           252: .RB ( ; )
        !           253: may be used to separate the
        !           254: .I rule
        !           255: from the rest of the specification.
        !           256: .PP
        !           257: If the
        !           258: .B TZ
        !           259: environment variable does not specify a
        !           260: .IR tzfile (5)-format
        !           261: and cannot be interpreted as a direct specification,
        !           262: UTC is used.
        !           263: .PP
        !           264: .I Tzsetwall
        !           265: sets things up so that
        !           266: .I localtime
        !           267: returns the best available approximation of local wall clock time.
        !           268: .PP
        !           269: .I Ctime\^
        !           270: converts a long integer, pointed to by
        !           271: .IR clock ,
        !           272: representing the time in seconds since
        !           273: 00:00:00 UTC, January 1, 1970,
        !           274: and returns a pointer to a
        !           275: 26-character string
        !           276: of the form
        !           277: .br
        !           278: .ce
        !           279: .eo
        !           280: Thu Nov 24 18:22:48 1986\n\0
        !           281: .ec
        !           282: .br
        !           283: All the fields have constant width.
        !           284: .PP
        !           285: .IR Localtime\^
        !           286: and
        !           287: .I gmtime\^
        !           288: return pointers to ``tm'' structures, described below.
        !           289: .I Localtime\^
        !           290: corrects for the time zone and any time zone adjustments
        !           291: (such as Daylight Saving Time in the U.S.A.).
        !           292: Before doing so,
        !           293: .I localtime\^
        !           294: calls
        !           295: .I tzset\^
        !           296: (if
        !           297: .I tzset\^
        !           298: has not been called in the current process).
        !           299: After filling in the ``tm'' structure,
        !           300: .I localtime
        !           301: sets the
        !           302: .BR tm_isdst 'th
        !           303: element of
        !           304: .B tzname
        !           305: to a pointer to an 
        !           306: ASCII string that's the time zone abbreviation to be used with
        !           307: .IR localtime 's
        !           308: return value.
        !           309: .PP
        !           310: .I Gmtime\^
        !           311: converts to Coordinated Universal Time.
        !           312: .PP
        !           313: .I Asctime\^
        !           314: converts a time value contained in a
        !           315: ``tm'' structure to a 26-character string,
        !           316: as shown in the above example,
        !           317: and returns a pointer
        !           318: to the string.
        !           319: .PP
        !           320: .I Mktime\^
        !           321: converts the broken-down time,
        !           322: expressed as local time,
        !           323: in the structure pointed to by
        !           324: .I tm
        !           325: into a calendar time value with the same encoding as that of the values
        !           326: returned by the
        !           327: .I time
        !           328: function.
        !           329: The original values of the
        !           330: .B tm_wday
        !           331: and
        !           332: .B tm_yday
        !           333: components of the structure are ignored,
        !           334: and the original values of the other components are not restricted
        !           335: to their normal ranges.
        !           336: (A positive or zero value for
        !           337: .B tm_isdst
        !           338: causes
        !           339: .I mktime
        !           340: to presume initially that summer time (for example, Daylight Saving Time 
        !           341: in the U.S.A.)
        !           342: respectively,
        !           343: is or is not in effect for the specified time.
        !           344: A negative value for
        !           345: .B tm_isdst
        !           346: causes the
        !           347: .I mktime
        !           348: function to attempt to divine whether summer time is in effect
        !           349: for the specified time.)
        !           350: On successful completion, the values of the
        !           351: .B tm_wday
        !           352: and
        !           353: .B tm_yday
        !           354: components of the structure are set appropriately,
        !           355: and the other components are set to represent the specified calendar time,
        !           356: but with their values forced to their normal ranges; the final value of
        !           357: .B tm_mday
        !           358: is not set until
        !           359: .B tm_mon
        !           360: and
        !           361: .B tm_year
        !           362: are determined.
        !           363: .I Mktime\^
        !           364: returns the specified calendar time;
        !           365: If the calendar time cannot be represented,
        !           366: it returns
        !           367: .BR -1 .
        !           368: .PP
        !           369: .I Difftime\^
        !           370: returns the difference between two calendar times,
        !           371: .I time1
        !           372: -
        !           373: .IR time0,
        !           374: expressed in seconds.
        !           375: .PP
        !           376: Declarations of all the functions and externals, and the ``tm'' structure,
        !           377: are in the
        !           378: .B <time.h>\^
        !           379: header file.
        !           380: The structure (of type)
        !           381: .B struct tm
        !           382: includes the following fields:
        !           383: .RS
        !           384: .PP
        !           385: .nf
        !           386: .ta .5i +\w'long tm_gmtoff;\0\0'u
        !           387:        int tm_sec;     /\(** seconds (0 - 60) \(**/
        !           388:        int tm_min;     /\(** minutes (0 - 59) \(**/
        !           389:        int tm_hour;    /\(** hours (0 - 23) \(**/
        !           390:        int tm_mday;    /\(** day of month (1 - 31) \(**/
        !           391:        int tm_mon;     /\(** month of year (0 - 11) \(**/
        !           392:        int tm_year;    /\(** year \- 1900 \(**/
        !           393:        int tm_wday;    /\(** day of week (Sunday = 0) \(**/
        !           394:        int tm_yday;    /\(** day of year (0 - 365) \(**/
        !           395:        int tm_isdst;   /\(** is summer time in effect? \(**/
        !           396:        char \(**tm_zone;       /\(** abbreviation of timezone name \(**/
        !           397:        long tm_gmtoff; /\(** offset from UTC in seconds \(**/
        !           398: .fi
        !           399: .RE
        !           400: .PP
        !           401: The
        !           402: .I tm_zone
        !           403: and
        !           404: .I tm_gmtoff
        !           405: fields exist, and are filled in, only if arrangements to do
        !           406: so were made when the library containing these functions was
        !           407: created.
        !           408: There is no guarantee that these fields will continue to exist
        !           409: in this form in future releases of this code.
        !           410: .PP
        !           411: .I Tm_isdst\^
        !           412: is non-zero if summer time is in effect.
        !           413: .PP
        !           414: .I Tm_gmtoff
        !           415: is the offset (in seconds) of the time represented
        !           416: from UTC, with positive values indicating east
        !           417: of the Prime Meridian.
        !           418: .SH FILES
        !           419: .ta \w'/usr/share/zoneinfo/posixrules\0\0'u
        !           420: /usr/share/zoneinfo    time zone information directory
        !           421: .br
        !           422: /usr/share/zoneinfo/localtime  local time zone file
        !           423: .br
        !           424: /usr/share/zoneinfo/posixrules used in converting POSIX-style TZ's
        !           425: .br
        !           426: /usr/share/zoneinfo/GMT        for UTC leap seconds
        !           427: .sp
        !           428: If
        !           429: .I /usr/share/zoneinfo/GMT
        !           430: is absent,
        !           431: UTC leap seconds are loaded from
        !           432: .IR /usr/share/zoneinfo/posixrules .
        !           433: .SH SEE ALSO
        !           434: time(2), getenv(3), tzfile(5)
        !           435: .SH NOTES
        !           436: The return values point to static data
        !           437: whose content is overwritten by each call.
        !           438: The
        !           439: .B tm_zone
        !           440: field of a returned
        !           441: .B "struct tm"
        !           442: points to a static array of characters, which
        !           443: will also be overwritten at the next call
        !           444: (and by calls to
        !           445: .I tzset
        !           446: or
        !           447: .IR tzsetwall ).
        !           448: .PP
        !           449: Avoid using out-of-range values with
        !           450: .I mktime
        !           451: when setting up lunch with promptness sticklers in Riyadh.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.