.\" 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. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
.\" 4. 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.
.\" SUCH DAMAGE.
.\"
.\" @(#)strtol.3 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/stdlib/strtol.3,v 1.20 2005/01/22 18:02:58 ache Exp $
+.\" $FreeBSD: src/lib/libc/stdlib/strtol.3,v 1.23 2007/04/10 11:17:00 ru Exp $
.\"
.Dd November 28, 2001
.Dt STRTOL 3
.Os
.Sh NAME
-.Nm strtol , strtoll , strtoimax , strtoq
+.Nm strtoimax ,
+.Nm strtol ,
+.Nm strtoll ,
+.Nm strtoq
.Nd "convert a string value to a"
.Vt long , "long long" , intmax_t
or
.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 * restrict nptr" "char ** restrict 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 * restrict nptr" "char ** restrict endptr" "int base"
-.In inttypes.h
-.Ft intmax_t
-.Fn strtoimax "const char * restrict nptr" "char ** restrict 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
.Vt long
value.
.Fn strtoll
function
converts the string in
-.Fa nptr
+.Fa str
to a
.Vt "long long"
value.
.Fn strtoimax
function
converts the string in
-.Fa nptr
+.Fa str
to an
.Vt intmax_t
value.
.Fn strtoq
function
converts the string in
-.Fa nptr
+.Fa str
to a
.Vt quad_t
value.
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
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 ,
.Fn strtoll ,
-.Fn strtoimax
+.Fn strtoimax ,
and
.Fn strtoq
functions
.Er ERANGE
and the function return value is clamped according
to the following table.
-.Bl -column -offset indent ".Fn strtoimax" ".Sy overflow" ".Sy underflow"
-.It Sy Function Ta Sy overflow Ta Sy underflow
+.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 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 strtol_l 3 ,
.Xr strtoul 3 ,
-.Xr wcstol 3
+.Xr wcstol 3 ,
+.Xr compat 5
.Sh STANDARDS
The
.Fn strtol