Provided by: manpages-pt-dev_20040726-4_all bug

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 underflow 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), strtod(3), strtoul(3)

BUGS

       Ignores the current locale.