NAME

     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 character 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 digits
     at all, strtol()  stores  the  original  value  of  nptr  in
     *endptr.   (Thus,  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  conversion,
     unless  the value would underflow or overflow.  If an under-
     flow occurs, strtol()  returns  LONG_MIN.   If  an  overflow
     occurs,  strtol() returns LONG_MAX.  In both cases, errno is
     set to ERANGE.


ERRORS

     ERANGE
          The given string was out of range; the value  converted
          has been clamped.


CONFORMING TO

     SVID 3, BSD 4.3, ISO 9899


SEE ALSO

     atof(3), atoi(3), atol(3),



BUGS

     Ignores the current locale.