Loading...
stdlib/strtol.3 Libc-262 Libc-498.1.5
--- Libc/Libc-262/stdlib/strtol.3
+++ Libc/Libc-498.1.5/stdlib/strtol.3
@@ -34,52 +34,85 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)strtol.3	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/stdlib/strtol.3,v 1.14 2001/09/11 09:39:23 ru Exp $
-.\"
-.Dd June 4, 1993
+.\" $FreeBSD: src/lib/libc/stdlib/strtol.3,v 1.20 2005/01/22 18:02:58 ache Exp $
+.\"
+.Dd November 28, 2001
 .Dt STRTOL 3
 .Os
 .Sh NAME
-.Nm strtol , strtoll , strtoq
-.Nd "convert a string value to a long, long long, or quad_t integer"
+.Nm strtoimax ,
+.Nm strtol ,
+.Nm strtoll ,
+.Nm strtoq
+.Nd "convert a string value to a"
+.Vt long , "long long" , intmax_t
+or
+.Vt quad_t
+integer
 .Sh LIBRARY
 .Lb libc
 .Sh SYNOPSIS
+.In inttypes.h
+.Ft intmax_t
+.Fo strtoimax
+.Fa "const char *restrict str"
+.Fa "char **restrict endptr"
+.Fa "int base"
+.Fc
 .In stdlib.h
-.In limits.h
 .Ft long
-.Fn strtol "const char *nptr" "char **endptr" "int base"
+.Fo strtol
+.Fa "const char *restrict str"
+.Fa "char **restrict endptr"
+.Fa "int base"
+.Fc
 .Ft long long
-.Fn strtoll "const char *nptr" "char **endptr" "int base"
+.Fo strtoll
+.Fa "const char *restrict str"
+.Fa "char **restrict endptr"
+.Fa "int base"
+.Fc
 .In sys/types.h
 .In stdlib.h
 .In limits.h
 .Ft quad_t
-.Fn strtoq "const char *nptr" "char **endptr" "int base"
+.Fo strtoq
+.Fa "const char *str"
+.Fa "char **endptr"
+.Fa "int base"
+.Fc
 .Sh DESCRIPTION
 The
 .Fn strtol
 function
 converts the string in
-.Fa nptr
+.Fa str
 to a
-.Em long
+.Vt long
 value.
 The
 .Fn strtoll
 function
 converts the string in
-.Fa nptr
+.Fa str
 to a
-.Em long long
+.Vt "long long"
+value.
+The
+.Fn strtoimax
+function
+converts the string in
+.Fa str
+to an
+.Vt intmax_t
 value.
 The
 .Fn strtoq
 function
 converts the string in
-.Fa nptr
+.Fa str
 to a
-.Em quad_t
+.Vt quad_t
 value.
 The conversion is done according to the given
 .Fa base ,
@@ -98,7 +131,7 @@
 .Fa base
 is zero or 16,
 the string may then include a
-.Ql 0x
+.Dq Li 0x
 prefix,
 and the number will be read in base 16; otherwise, a zero
 .Fa base
@@ -107,7 +140,9 @@
 in which case it is taken as 8 (octal).
 .Pp
 The remainder of the string is converted to a
-.Em long
+.Vt long , "long long" , intmax_t
+or
+.Vt quad_t
 value in the obvious manner,
 stopping at the first character which is not a valid digit
 in the given base.
@@ -122,18 +157,19 @@
 .Pp
 If
 .Fa endptr
-is non nil,
+is not
+.Dv NULL ,
 .Fn strtol
 stores the address of the first invalid character in
 .Fa *endptr .
 If there were no digits at all, however,
 .Fn strtol
 stores the original value of
-.Fa nptr
+.Fa str
 in
 .Fa *endptr .
 (Thus, if
-.Fa *nptr
+.Fa *str
 is not
 .Ql \e0
 but
@@ -141,55 +177,71 @@
 is
 .Ql \e0
 on return, the entire string was valid.)
+.Pp
+Extended locale versions of these functions are documented in
+.Xr strtol_l 3 .
+See
+.Xr xlocale 3
+for more information.
 .Sh RETURN VALUES
 The
-.Fn strtol
-or
-.Fn strtoll
-function
-returns the result of the conversion,
+.Fn strtol ,
+.Fn strtoll ,
+.Fn strtoimax ,
+and
+.Fn strtoq
+functions
+return the result of the conversion,
 unless the value would underflow or overflow.
 If no conversion could be performed, 0 is returned and
 the global variable
 .Va errno
 is set to
-.Er EINVAL .
-If an underflow occurs,
-.Fn strtol
-returns
-.Dv LONG_MIN .
-If an overflow occurs,
-.Fn strtol
-returns
-.Dv LONG_MAX .
-If an underflow occurs,
-.Fn strtoll
-returns
-.Dv LLONG_MIN .
-If an overflow occurs,
-.Fn strtoll
-returns
-.Dv LLONG_MAX .
-In all cases,
+.Er EINVAL
+(the last feature is not portable across all platforms).
+If an overflow or underflow occurs,
 .Va errno
 is set to
-.Er ERANGE .
+.Er ERANGE
+and the function return value is clamped according
+to the following table.
+.Bl -column -offset indent ".Fn strtoimax" ".Dv INTMAX_MIN" ".Dv INTMAX_MAX"
+.It Sy Function Ta Sy underflow Ta Sy overflow
+.It Fn strtol Ta Dv LONG_MIN Ta Dv LONG_MAX
+.It Fn strtoll Ta Dv LLONG_MIN Ta Dv LLONG_MAX
+.It Fn strtoimax Ta Dv INTMAX_MIN Ta Dv INTMAX_MAX
+.It Fn strtoq Ta Dv LLONG_MIN Ta Dv LLONG_MAX
+.El
 .Sh ERRORS
 .Bl -tag -width Er
 .It Bq Er EINVAL
 The value of
 .Fa base
 is not supported or
-no conversion could be performed.
+no conversion could be performed
+(the last feature is not portable across all platforms).
 .It Bq Er ERANGE
 The given string was out of range; the value converted has been clamped.
 .El
+.Sh LEGACY SYNOPSIS
+.Fd #include <stdlib.h>
+.Fd #include <limits.h>
+.Pp
+.In limits.h
+is necessary for the
+.Fn strtol
+and
+.Fn strtoll
+functions.
 .Sh SEE ALSO
 .Xr atof 3 ,
 .Xr atoi 3 ,
 .Xr atol 3 ,
 .Xr strtod 3 ,
-.Xr strtoul 3
+.Xr strtol_l 3 ,
+.Xr strtoul 3 ,
+.Xr wcstol 3 ,
+.Xr compat 5
 .Sh STANDARDS
 The
 .Fn strtol
@@ -198,8 +250,10 @@
 .St -isoC .
 The
 .Fn strtoll
-function
-conforms to
+and
+.Fn strtoimax
+functions
+conform to
 .St -isoC-99 .
 The
 .Bx