strtol - convert a string to a long integer.


SYNOPSIS

       #include <stdlib.h>

       long int strtol(const char *nptr, char **endptr, int base);


DESCRIPTION

       The  strtol()  function  converts  the string in nptr to a
       long integer value according to the given base, which must
       be  between 2 and 36 inclusive, or be the special value 0.

       The string must begin with an arbitrary  amount  of  white
       space  (as  determined by isspace(3)) followed by a single
       optional `+' or `-' sign.  If base  is  zero  or  16,  the
       string may then include a `0x' prefix, and the number will
       be read in base 16; otherwise, a zero base is taken as  10
       (decimal)  unless the next character is `0', in which case
       it is taken as 8 (octal).

       The remainder of the string is converted  to  a  long  int
       value in the obvious manner, stopping at the first charac­
       ter which is not a valid digit in  the  given  base.   (In
       bases  above  10,  the letter `A' in either upper or lower
       case represents 10, `B' represents 11, and so forth,  with
       `Z' representing 35.)

       If  endptr is not NULL, strtol() stores the address of the
       first invalid character in *endptr.  If there were no dig­
       its  at all, strtol() stores the original value of nptr in
       *endptr (and returns 0).  In particular, if *nptr  is  not
       `\0'  but **endptr is `\0' on return, the entire string is
       valid.


RETURN VALUE

       The strtol() function returns the result  of  the  conver­
       sion, unless the value would underflow or overflow.  If an
       underflow occurs, strtol() returns LONG_MIN.  If an  over­
       flow  occurs,  strtol()  returns LONG_MAX.  In both cases,
       errno is set to ERANGE.


ERRORS

       ERANGE The given string was out of range; the  value  con­
              verted has been clamped.


CONFORMING TO

       SVID 3, BSD 4.3, ISO 9899


SEE ALSO

       atof(3), atoi(3), atol(3), strtod(3), strtoul(3)


BUGS

       Ignores the current locale.


Man(1) output converted with man2html