158f0484fSRodney W. Grimes.\" Copyright (c) 1990, 1991, 1993 258f0484fSRodney W. Grimes.\" The Regents of the University of California. All rights reserved. 358f0484fSRodney W. Grimes.\" 458f0484fSRodney W. Grimes.\" This code is derived from software contributed to Berkeley by 558f0484fSRodney W. Grimes.\" Chris Torek and the American National Standards Committee X3, 658f0484fSRodney W. Grimes.\" on Information Processing Systems. 758f0484fSRodney W. Grimes.\" 858f0484fSRodney W. Grimes.\" Redistribution and use in source and binary forms, with or without 958f0484fSRodney W. Grimes.\" modification, are permitted provided that the following conditions 1058f0484fSRodney W. Grimes.\" are met: 1158f0484fSRodney W. Grimes.\" 1. Redistributions of source code must retain the above copyright 1258f0484fSRodney W. Grimes.\" notice, this list of conditions and the following disclaimer. 1358f0484fSRodney W. Grimes.\" 2. Redistributions in binary form must reproduce the above copyright 1458f0484fSRodney W. Grimes.\" notice, this list of conditions and the following disclaimer in the 1558f0484fSRodney W. Grimes.\" documentation and/or other materials provided with the distribution. 1658f0484fSRodney W. Grimes.\" 3. All advertising materials mentioning features or use of this software 1758f0484fSRodney W. Grimes.\" must display the following acknowledgement: 1858f0484fSRodney W. Grimes.\" This product includes software developed by the University of 1958f0484fSRodney W. Grimes.\" California, Berkeley and its contributors. 2058f0484fSRodney W. Grimes.\" 4. Neither the name of the University nor the names of its contributors 2158f0484fSRodney W. Grimes.\" may be used to endorse or promote products derived from this software 2258f0484fSRodney W. Grimes.\" without specific prior written permission. 2358f0484fSRodney W. Grimes.\" 2458f0484fSRodney W. Grimes.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 2558f0484fSRodney W. Grimes.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2658f0484fSRodney W. Grimes.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2758f0484fSRodney W. Grimes.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 2858f0484fSRodney W. Grimes.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2958f0484fSRodney W. Grimes.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 3058f0484fSRodney W. Grimes.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 3158f0484fSRodney W. Grimes.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 3258f0484fSRodney W. Grimes.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 3358f0484fSRodney W. Grimes.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 3458f0484fSRodney W. Grimes.\" SUCH DAMAGE. 3558f0484fSRodney W. Grimes.\" 3658f0484fSRodney W. Grimes.\" @(#)strtol.3 8.1 (Berkeley) 6/4/93 377f3dea24SPeter Wemm.\" $FreeBSD$ 3858f0484fSRodney W. Grimes.\" 3958f0484fSRodney W. Grimes.Dd June 4, 1993 4058f0484fSRodney W. Grimes.Dt STRTOL 3 4158f0484fSRodney W. Grimes.Os 4258f0484fSRodney W. Grimes.Sh NAME 4358f0484fSRodney W. Grimes.Nm strtol, strtoq 4458f0484fSRodney W. Grimes.Nd convert string value to a long or quad_t integer 4525bb73e0SAlexey Zelkin.Sh LIBRARY 4625bb73e0SAlexey Zelkin.Lb libc 4758f0484fSRodney W. Grimes.Sh SYNOPSIS 4858f0484fSRodney W. Grimes.Fd #include <stdlib.h> 4958f0484fSRodney W. Grimes.Fd #include <limits.h> 5058f0484fSRodney W. Grimes.Ft long 516333eac6SBruce Evans.Fn strtol "const char *nptr" "char **endptr" "int base" 5258f0484fSRodney W. Grimes 5358f0484fSRodney W. Grimes.Fd #include <sys/types.h> 5458f0484fSRodney W. Grimes.Fd #include <stdlib.h> 5558f0484fSRodney W. Grimes.Fd #include <limits.h> 5658f0484fSRodney W. Grimes.Ft quad_t 576333eac6SBruce Evans.Fn strtoq "const char *nptr" "char **endptr" "int base" 5858f0484fSRodney W. Grimes.Sh DESCRIPTION 5958f0484fSRodney W. GrimesThe 6058f0484fSRodney W. Grimes.Fn strtol 6158f0484fSRodney W. Grimesfunction 6258f0484fSRodney W. Grimesconverts the string in 6358f0484fSRodney W. Grimes.Fa nptr 6458f0484fSRodney W. Grimesto a 6558f0484fSRodney W. Grimes.Em long 6658f0484fSRodney W. Grimesvalue. 6758f0484fSRodney W. GrimesThe 6858f0484fSRodney W. Grimes.Fn strtoq 6958f0484fSRodney W. Grimesfunction 7058f0484fSRodney W. Grimesconverts the string in 7158f0484fSRodney W. Grimes.Fa nptr 7258f0484fSRodney W. Grimesto a 7358f0484fSRodney W. Grimes.Em quad_t 7458f0484fSRodney W. Grimesvalue. 7558f0484fSRodney W. GrimesThe conversion is done according to the given 7658f0484fSRodney W. Grimes.Fa base , 7758f0484fSRodney W. Grimeswhich must be between 2 and 36 inclusive, 7858f0484fSRodney W. Grimesor be the special value 0. 7958f0484fSRodney W. Grimes.Pp 8058f0484fSRodney W. GrimesThe string may begin with an arbitrary amount of white space 8158f0484fSRodney W. Grimes(as determined by 8258f0484fSRodney W. Grimes.Xr isspace 3 ) 8358f0484fSRodney W. Grimesfollowed by a single optional 8458f0484fSRodney W. Grimes.Ql + 8558f0484fSRodney W. Grimesor 8658f0484fSRodney W. Grimes.Ql - 8758f0484fSRodney W. Grimessign. 8858f0484fSRodney W. GrimesIf 8958f0484fSRodney W. Grimes.Fa base 9058f0484fSRodney W. Grimesis zero or 16, 9158f0484fSRodney W. Grimesthe string may then include a 9258f0484fSRodney W. Grimes.Ql 0x 9358f0484fSRodney W. Grimesprefix, 9458f0484fSRodney W. Grimesand the number will be read in base 16; otherwise, a zero 9558f0484fSRodney W. Grimes.Fa base 9658f0484fSRodney W. Grimesis taken as 10 (decimal) unless the next character is 9758f0484fSRodney W. Grimes.Ql 0 , 9858f0484fSRodney W. Grimesin which case it is taken as 8 (octal). 9958f0484fSRodney W. Grimes.Pp 10058f0484fSRodney W. GrimesThe remainder of the string is converted to a 10158f0484fSRodney W. Grimes.Em long 10258f0484fSRodney W. Grimesvalue in the obvious manner, 10358f0484fSRodney W. Grimesstopping at the first character which is not a valid digit 10458f0484fSRodney W. Grimesin the given base. 10558f0484fSRodney W. Grimes(In bases above 10, the letter 10658f0484fSRodney W. Grimes.Ql A 10758f0484fSRodney W. Grimesin either upper or lower case 10858f0484fSRodney W. Grimesrepresents 10, 10958f0484fSRodney W. Grimes.Ql B 11058f0484fSRodney W. Grimesrepresents 11, and so forth, with 11158f0484fSRodney W. Grimes.Ql Z 11258f0484fSRodney W. Grimesrepresenting 35.) 11358f0484fSRodney W. Grimes.Pp 11458f0484fSRodney W. GrimesIf 11558f0484fSRodney W. Grimes.Fa endptr 11658f0484fSRodney W. Grimesis non nil, 11758f0484fSRodney W. Grimes.Fn strtol 11858f0484fSRodney W. Grimesstores the address of the first invalid character in 11958f0484fSRodney W. Grimes.Fa *endptr . 12058f0484fSRodney W. GrimesIf there were no digits at all, however, 12158f0484fSRodney W. Grimes.Fn strtol 12258f0484fSRodney W. Grimesstores the original value of 12358f0484fSRodney W. Grimes.Fa nptr 12458f0484fSRodney W. Grimesin 12558f0484fSRodney W. Grimes.Fa *endptr . 12658f0484fSRodney W. Grimes(Thus, if 12758f0484fSRodney W. Grimes.Fa *nptr 12858f0484fSRodney W. Grimesis not 12958f0484fSRodney W. Grimes.Ql \e0 13058f0484fSRodney W. Grimesbut 13158f0484fSRodney W. Grimes.Fa **endptr 13258f0484fSRodney W. Grimesis 13358f0484fSRodney W. Grimes.Ql \e0 13458f0484fSRodney W. Grimeson return, the entire string was valid.) 13558f0484fSRodney W. Grimes.Sh RETURN VALUES 13658f0484fSRodney W. GrimesThe 13758f0484fSRodney W. Grimes.Fn strtol 13858f0484fSRodney W. Grimesfunction 13958f0484fSRodney W. Grimesreturns the result of the conversion, 14058f0484fSRodney W. Grimesunless the value would underflow or overflow. 14158f0484fSRodney W. GrimesIf an underflow occurs, 14258f0484fSRodney W. Grimes.Fn strtol 14358f0484fSRodney W. Grimesreturns 14458f0484fSRodney W. Grimes.Dv LONG_MIN . 14558f0484fSRodney W. GrimesIf an overflow occurs, 14658f0484fSRodney W. Grimes.Fn strtol 14758f0484fSRodney W. Grimesreturns 14858f0484fSRodney W. Grimes.Dv LONG_MAX . 14958f0484fSRodney W. GrimesIn both cases, 15058f0484fSRodney W. Grimes.Va errno 15158f0484fSRodney W. Grimesis set to 15258f0484fSRodney W. Grimes.Er ERANGE . 15358f0484fSRodney W. Grimes.Sh ERRORS 15458f0484fSRodney W. Grimes.Bl -tag -width [ERANGE] 15558f0484fSRodney W. Grimes.It Bq Er ERANGE 15658f0484fSRodney W. GrimesThe given string was out of range; the value converted has been clamped. 15758f0484fSRodney W. Grimes.El 15858f0484fSRodney W. Grimes.Sh SEE ALSO 15958f0484fSRodney W. Grimes.Xr atof 3 , 16058f0484fSRodney W. Grimes.Xr atoi 3 , 16158f0484fSRodney W. Grimes.Xr atol 3 , 16258f0484fSRodney W. Grimes.Xr strtod 3 , 16358f0484fSRodney W. Grimes.Xr strtoul 3 16458f0484fSRodney W. Grimes.Sh STANDARDS 16558f0484fSRodney W. GrimesThe 16658f0484fSRodney W. Grimes.Fn strtol 16758f0484fSRodney W. Grimesfunction 16858f0484fSRodney W. Grimesconforms to 16958f0484fSRodney W. Grimes.St -ansiC . 17058f0484fSRodney W. Grimes.Sh BUGS 17158f0484fSRodney W. GrimesIgnores the current locale. 172