File: *manpages*,  Node: strtol,  Up: (dir)



STRTOL(3)           Linux Programmer's Manual           STRTOL(3)

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 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.  (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 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.

GNU                        10 June 1995                         1

