This patch imports the unmodified current version of NetBSD libc. The NetBSD includes are in /nbsd_include, while the libc code itself is split between lib/nbsd_libc and common/lib/libc.
		
			
				
	
	
		
			199 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			199 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
.\"	$NetBSD: strtod.3,v 1.20 2007/10/24 13:42:10 reed Exp $
 | 
						|
.\"
 | 
						|
.\" Copyright (c) 1990, 1991, 1993
 | 
						|
.\"	The Regents of the University of California.  All rights reserved.
 | 
						|
.\"
 | 
						|
.\" This code is derived from software contributed to Berkeley by
 | 
						|
.\" the American National Standards Committee X3, on Information
 | 
						|
.\" Processing Systems.
 | 
						|
.\"
 | 
						|
.\" 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.
 | 
						|
.\" 3. Neither the name of the University nor the names of its contributors
 | 
						|
.\"    may be used to endorse or promote products derived from this software
 | 
						|
.\"    without specific prior written permission.
 | 
						|
.\"
 | 
						|
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
 | 
						|
.\"
 | 
						|
.\"     from: @(#)strtod.3	8.1 (Berkeley) 6/4/93
 | 
						|
.\"
 | 
						|
.Dd March 12, 2006
 | 
						|
.Dt STRTOD 3
 | 
						|
.Os
 | 
						|
.Sh NAME
 | 
						|
.Nm strtod ,
 | 
						|
.Nm strtof ,
 | 
						|
.Nm strtold
 | 
						|
.Nd convert
 | 
						|
.Tn ASCII
 | 
						|
string to double, float, or long double
 | 
						|
.Sh LIBRARY
 | 
						|
.Lb libc
 | 
						|
.Sh SYNOPSIS
 | 
						|
.In stdlib.h
 | 
						|
.Ft double
 | 
						|
.Fn strtod "const char * restrict nptr" "char ** restrict endptr"
 | 
						|
.Ft float
 | 
						|
.Fn strtof "const char * restrict nptr" "char ** restrict endptr"
 | 
						|
.Ft long double
 | 
						|
.Fn strtold "const char * restrict nptr" "char ** restrict endptr"
 | 
						|
.Sh DESCRIPTION
 | 
						|
The
 | 
						|
.Fn strtod
 | 
						|
function converts the initial portion of the string
 | 
						|
pointed to by
 | 
						|
.Fa nptr
 | 
						|
to
 | 
						|
.Em double
 | 
						|
representation.
 | 
						|
.Pp
 | 
						|
The
 | 
						|
.Fn strtof
 | 
						|
function converts the initial portion of the string
 | 
						|
pointed to by
 | 
						|
.Fa nptr
 | 
						|
to
 | 
						|
.Em float
 | 
						|
representation.
 | 
						|
.Pp
 | 
						|
The
 | 
						|
.Fn strtold
 | 
						|
function converts the initial portion of the string
 | 
						|
pointed to by
 | 
						|
.Fa nptr
 | 
						|
to
 | 
						|
.Em long double
 | 
						|
representation.
 | 
						|
.Pp
 | 
						|
The expected form of the string is an optional plus
 | 
						|
.Pq Sq +
 | 
						|
or minus sign
 | 
						|
.Pq Sq \-
 | 
						|
followed by one of the following:
 | 
						|
.Bl -dash
 | 
						|
.It
 | 
						|
a sequence of digits optionally containing
 | 
						|
a decimal-point character, optionally followed by an exponent.
 | 
						|
An exponent consists of an
 | 
						|
.Sq E
 | 
						|
or
 | 
						|
.Sq e ,
 | 
						|
followed by an optional plus
 | 
						|
or minus sign, followed by a sequence of digits.
 | 
						|
.It
 | 
						|
one of
 | 
						|
.Li INF
 | 
						|
or
 | 
						|
.Li INFINITY ,
 | 
						|
ignoring case.
 | 
						|
.It
 | 
						|
one of
 | 
						|
.Li NAN
 | 
						|
or
 | 
						|
.Li NAN(n-char-sequence-opt) ,
 | 
						|
ignoring case.
 | 
						|
This implementation currently does not interpret such a sequence.
 | 
						|
.El
 | 
						|
.Pp
 | 
						|
Leading white-space characters in the string (as defined by the
 | 
						|
.Xr isspace 3
 | 
						|
function) are skipped.
 | 
						|
.Sh RETURN VALUES
 | 
						|
The
 | 
						|
.Fn strtod ,
 | 
						|
.Fn strtof ,
 | 
						|
and
 | 
						|
.Fn strtold
 | 
						|
functions return the converted value, if any.
 | 
						|
.Pp
 | 
						|
A character sequence
 | 
						|
.Li INF
 | 
						|
or
 | 
						|
.Li INFINITY
 | 
						|
is converted to \*(If,
 | 
						|
if supported, else to the largest finite floating-point number representable
 | 
						|
on the machine (i.e.,
 | 
						|
.Tn VAX ) .
 | 
						|
.Pp
 | 
						|
A character sequence
 | 
						|
.Li NAN
 | 
						|
or
 | 
						|
.Li NAN(n-char-sequence-opt)
 | 
						|
is converted to a quiet \*(Na, if supported, else remains unrecognized (i.e.,
 | 
						|
.Tn VAX ) .
 | 
						|
.Pp
 | 
						|
If
 | 
						|
.Fa endptr
 | 
						|
is not
 | 
						|
.Dv NULL ,
 | 
						|
a pointer to the character after the last character used
 | 
						|
in the conversion is stored in the location referenced by
 | 
						|
.Fa endptr .
 | 
						|
.Pp
 | 
						|
If no conversion is performed, zero is returned and the value of
 | 
						|
.Fa nptr
 | 
						|
is stored in the location referenced by
 | 
						|
.Fa endptr .
 | 
						|
.Pp
 | 
						|
If the correct value would cause overflow, plus or minus
 | 
						|
.Dv HUGE_VAL ,
 | 
						|
.Dv HUGE_VALF ,
 | 
						|
or
 | 
						|
.Dv HUGE_VALL
 | 
						|
is returned (according to the return type and sign of the value), and
 | 
						|
.Dv ERANGE
 | 
						|
is stored in
 | 
						|
.Va errno .
 | 
						|
If the correct value would cause underflow, zero is
 | 
						|
returned and
 | 
						|
.Dv ERANGE
 | 
						|
is stored in
 | 
						|
.Va errno .
 | 
						|
.Sh ERRORS
 | 
						|
.Bl -tag -width Er
 | 
						|
.It Bq Er ERANGE
 | 
						|
Overflow or underflow occurred.
 | 
						|
.El
 | 
						|
.Sh SEE ALSO
 | 
						|
.Xr atof 3 ,
 | 
						|
.Xr atoi 3 ,
 | 
						|
.Xr atol 3 ,
 | 
						|
.Xr math 3 ,
 | 
						|
.Xr strtol 3 ,
 | 
						|
.Xr strtoul 3
 | 
						|
.Sh STANDARDS
 | 
						|
The
 | 
						|
.Fn strtod
 | 
						|
function
 | 
						|
conforms to
 | 
						|
.St -ansiC .
 | 
						|
The
 | 
						|
.Fn strtof
 | 
						|
and
 | 
						|
.Fn strtold
 | 
						|
functions conform to
 | 
						|
.St -isoC-99 .
 | 
						|
.Sh HISTORY
 | 
						|
The
 | 
						|
.Fn strtof
 | 
						|
and
 | 
						|
.Fn strtold
 | 
						|
functions appeared in
 | 
						|
.Nx 4.0 .
 |