 84d9c625bf
			
		
	
	
		84d9c625bf
		
	
	
	
	
		
			
			- Fix for possible unset uid/gid in toproto
 - Fix for default mtree style
 - Update libelf
 - Importing libexecinfo
 - Resynchronize GCC, mpc, gmp, mpfr
 - build.sh: Replace params with show-params.
     This has been done as the make target has been renamed in the same
     way, while a new target named params has been added. This new
     target generates a file containing all the parameters, instead of
     printing it on the console.
 - Update test48 with new etc/services (Fix by Ben Gras <ben@minix3.org)
     get getservbyport() out of the inner loop
Change-Id: Ie6ad5226fa2621ff9f0dee8782ea48f9443d2091
		
	
			
		
			
				
	
	
		
			235 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			235 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .\"	$NetBSD: getdate.3,v 1.8 2012/12/14 23:26:17 uwe Exp $
 | |
| .\"
 | |
| .\" Copyright (c) 2009, 2011, 2012, The NetBSD Foundation.
 | |
| .\" All Rights Reserved.
 | |
| .\"
 | |
| .\" This code is derived from software contributed to The NetBSD Foundation
 | |
| .\" by Brian Ginsbach.
 | |
| .\"
 | |
| .\" Redistribution and use in source and binary forms, with or without
 | |
| .\" modification, are permitted provided that the following conditions
 | |
| .\" are met:
 | |
| .\" 1. Redistributions of source code must retain the above copyright
 | |
| .\"    notice, this list of conditions and the following disclaimer.
 | |
| .\" 2. Redistributions in binary form must reproduce the above copyright
 | |
| .\"    notice, this list of conditions and the following disclaimer in the
 | |
| .\"    documentation and/or other materials provided with the distribution.
 | |
| .\"
 | |
| .\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
 | |
| .\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
 | |
| .\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 | |
| .\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
 | |
| .\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 | |
| .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 | |
| .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 | |
| .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 | |
| .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 | |
| .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 | |
| .\" POSSIBILITY OF SUCH DAMAGE.
 | |
| .\"
 | |
| .Dd December 14, 2012
 | |
| .Dt GETDATE 3
 | |
| .Os
 | |
| .Sh NAME
 | |
| .Nm getdate ,
 | |
| .Nm getdate_err
 | |
| .Nd convert user format date and time
 | |
| .Sh LIBRARY
 | |
| .Lb libc
 | |
| .Sh SYNOPSIS
 | |
| .In time.h
 | |
| .Ft "struct tm *"
 | |
| .Fo "getdate"
 | |
| .Fa "const char *str"
 | |
| .Fc
 | |
| .Vt extern int getdate_err ;
 | |
| .Sh DESCRIPTION
 | |
| The
 | |
| .Fn getdate
 | |
| function converts a date or time character string pointed to by
 | |
| .Fa str
 | |
| into a static
 | |
| .Vt tm
 | |
| structure described in
 | |
| .Xr tm 3 .
 | |
| .Pp
 | |
| The input string is parsed and interpreted using templates.
 | |
| A text file containing templates is specified by the
 | |
| environment variable
 | |
| .Ev DATEMSK .
 | |
| This should contain the full path to the template file.
 | |
| Lines in the template file represent acceptable date and/or time
 | |
| conversion specifications.
 | |
| These specifications are similar to those given for
 | |
| .Xr strptime 3 .
 | |
| The first line in the template file that matches the input string
 | |
| is used to interpret and convert to internal time format.
 | |
| .Ss Internal Format Conversion
 | |
| The following rules apply to converting the input into the internal format.
 | |
| .Bl -bullet -offset indent
 | |
| .It
 | |
| If only the weekday is given, the conversion assumes today when the
 | |
| weekday matches today or the first future matching weekday.
 | |
| .It
 | |
| If only the month and no year is given, the conversion assumes the
 | |
| current month when the month matches or the first future matching month.
 | |
| The first day of the month is assumed if no day is given.
 | |
| .It
 | |
| If only the year is given, the values of the
 | |
| .Fa tm_mon ,
 | |
| .Fa tm_mday ,
 | |
| .Fa tm_wday ,
 | |
| .Fa tm_yday ,
 | |
| and
 | |
| .Fa tm_isdst
 | |
| members of the returned
 | |
| .Vt "struct tm"
 | |
| are unspecified.
 | |
| .It
 | |
| If the century is given, but the year within the century is not given,
 | |
| the conversion assumes the current year.
 | |
| .It
 | |
| If no hour, minute, and second are given, the conversion assumes
 | |
| the current hour, minute, and second.
 | |
| .It
 | |
| If no date is given, the conversion assumes today when the given hour
 | |
| is greater than the current hour and tomorrow when the given hour is less.
 | |
| .It
 | |
| If
 | |
| .Cm \&%Z
 | |
| is being scanned, then the broken-down time is based on the the
 | |
| current time of the matched timezone and not the current runtime
 | |
| environment timezone.
 | |
| .El
 | |
| .Sh RETURN VALUES
 | |
| If successful, the
 | |
| .Fn getdate
 | |
| function returns a pointer to a static
 | |
| .Vt tm
 | |
| structure containing the broken-down time.
 | |
| Otherwise, a null pointer is returned and
 | |
| .Va getdate_err
 | |
| is set to indicate the error.
 | |
| .Pp
 | |
| The variable
 | |
| .Va getdate_err
 | |
| can have the following values:
 | |
| .Bl -tag -width NNN
 | |
| .It 1
 | |
| .Ev DATEMSK
 | |
| environment variable is null or undefined.
 | |
| .It 2
 | |
| Cannot open the template file for reading.
 | |
| .It 3
 | |
| Get file status failed for template file.
 | |
| .It 4
 | |
| Template file is not a regular file.
 | |
| .It 5
 | |
| Encountered an error while reading the template file.
 | |
| .It 6
 | |
| Cannot allocate memory.
 | |
| .It 7
 | |
| Input string does not match any line in the template file.
 | |
| .It 8
 | |
| Input string is invalid (for example, February 31)
 | |
| or could not be represented in a
 | |
| .Vt time_t .
 | |
| .El
 | |
| .Sh ENVIRONMENT
 | |
| .Bl -tag -width DATEMSK
 | |
| .It Ev DATEMSK
 | |
| The full path to the text file containing the templates
 | |
| for acceptable date and/or time conversions.
 | |
| .El
 | |
| .Sh FILES
 | |
| .Bl -tag -width DATEMSK
 | |
| .It  Pa /usr/share/examples/getdate/datemsk.template
 | |
| An example template file that could be specified via the
 | |
| .Ev DATEMSK
 | |
| environment variable.
 | |
| .El
 | |
| .Sh EXAMPLES
 | |
| The following example shows the possible contents of a template file:
 | |
| .Pp
 | |
| .Bd -literal -offset indent -compact
 | |
| %m
 | |
| %A %B %d, %Y, %H:%M:%S
 | |
| %A
 | |
| %B
 | |
| %m/%d/%y %I %p
 | |
| %d,%m,%Y %H:%M
 | |
| at %A the %dst of %B in %Y
 | |
| run job at %I %p, %B %dnd
 | |
| %A den %d. %B %Y %H.%M Uhr
 | |
| .Ed
 | |
| .Pp
 | |
| The following are examples of valid input for the above template:
 | |
| .Pp
 | |
| .Bd -literal -offset indent -compact
 | |
| 10/1/87 4 PM
 | |
| Friday
 | |
| Friday September 18, 1987, 10:30:30
 | |
| 24,9,1986 10:30
 | |
| at monday the 1st of december in 1986
 | |
| run job at 3 PM, december 2nd
 | |
| .Ed
 | |
| .Pp
 | |
| The following examples show how local data and time specification can be
 | |
| defined in the template.
 | |
| .Pp
 | |
| .Bl -column -offset indent ".Li Friday 12:00:00" ".Sy Line in Template"
 | |
| .It Sy "Input String" Ta Sy "Line in Template"
 | |
| .It Li 11/27/86 Ta Li \&%m/\&%d/\&%y
 | |
| .It Li 27.11.86 Ta Li \&%d.\&%m.\&%y
 | |
| .It Li 86-11-27 Ta Li \&%y-\&%m-\&%d
 | |
| .It Li "Friday 12:00:00" Ta Li "\&%A \&%H:\&%M:\&%S"
 | |
| .El
 | |
| .Pp
 | |
| The following examples illustrate the Internal Format Conversion rules
 | |
| given that the current date is
 | |
| .Li "Mon Sep 22 12:19:47 EDT 1986"
 | |
| and the
 | |
| .Ev LC_TIME
 | |
| environment variable is set to the default C locale.
 | |
| .Pp
 | |
| .Bl -column -offset indent ".Li Jan Wed 1989" ".Sy Line in Template" ".Sy Date"
 | |
| .It Sy Input String Ta Sy Line in Template Ta Sy Date
 | |
| .It Li Mon Ta Li \&%a Ta Li "Mon Sep 22 12:19:47 EDT 1986"
 | |
| .It Li Sun Ta Li \&%a Ta Li "Sun Sep 28 12:19:47 EDT 1986"
 | |
| .It Li Fri Ta Li \&%a Ta Li "Fri Sep 26 12:19:47 EDT 1986"
 | |
| .It Li September Ta Li \&%B Ta Li "Mon Sep  1 12:19:47 EDT 1986"
 | |
| .It Li January Ta Li \&%B Ta Li "Thu Jan  1 12:19:47 EST 1987"
 | |
| .It Li December Ta Li \&%B Ta Li "Mon Dec  1 12:19:47 EST 1986"
 | |
| .It Li "Sep Mon" Ta Li "\&%b %a" Ta Li "Mon Sep  1 12:19:47 EDT 1986"
 | |
| .It Li "Jan Fri" Ta Li "\&%b %a" Ta Li "Fri Jan  2 12:19:47 EST 1987"
 | |
| .It Li "Dec Mon" Ta Li "\&%b %a" Ta Li "Mon Dec  1 12:19:47 EST 1986"
 | |
| .It Li "Jan Wed 1989" Ta Li "\&%b \&%a \&%Y" Ta Li "Wed Jan  4 12:19:47 EST 1989"
 | |
| .It Li "Fri 9" Ta Li "\&%a \&%H" Ta Li "Fri Sep 26 09:00:00 EDT 1986"
 | |
| .It Li "Feb 10:30" Ta Li "\&%b \&%H:\&%S" Ta Li "Sun Feb  1 10:00:30 EST 1987"
 | |
| .It Li 10:30 Ta Li "\&%H:\&%M" Ta Li "Tue Sep 23 10:30:00 EDT 1986"
 | |
| .It Li 13:30 Ta Li "\&%H:\&%M" Ta Li "Tue Sep 22 13:30:00 EDT 1986"
 | |
| .El
 | |
| .Sh SEE ALSO
 | |
| .Xr ctime 3 ,
 | |
| .Xr localtime 3 ,
 | |
| .Xr mktime 3 ,
 | |
| .Xr strftime 3 ,
 | |
| .Xr strptime 3 ,
 | |
| .Xr time 3
 | |
| .Sh STANDARDS
 | |
| The
 | |
| .Fn getdate
 | |
| function conforms to
 | |
| .St -p1003.1-2001 .
 | |
| .Sh HISTORY
 | |
| The
 | |
| .Nm
 | |
| function appeared in
 | |
| .At V.4 .
 | |
| .Sh BUGS
 | |
| The
 | |
| .Nm
 | |
| interface is inherently unsafe for multi-threaded programs or libraries,
 | |
| since it returns a pointer to a static variable and uses a global state
 | |
| variable.
 |