strtol(3C) (C Programming Language Utilities) strtol(3C)
NAME
strtol, strtoul, atol, atoi - convert string to integer
SYNOPSIS
#include <stdlib.h>
long strtol (const char *str, char **ptr, int base);
unsigned long strtoul (const char *str, char **ptr, int base);
long atol (const char *str);
int atoi (const char *str);
DESCRIPTION
strtol returns as a long integer the value represented by the
character string pointed to by str. The string is scanned up to the
first character inconsistent with the base. Leading ``white-space''
characters [as defined by isspace in ctype(3C)] are ignored.
If the value of ptr is not (char **)NULL, a pointer to the character
terminating the scan is returned in the location pointed to by ptr.
If no integer can be formed, that location is set to str, and zero is
returned.
If base is positive (and not greater than 36), it is used as the base
for conversion. After an optional leading sign, leading zeros are
ignored, and ``0x'' or ``0X'' is ignored if base is 16.
If base is zero, the string itself determines the base as follows:
After an optional leading sign a leading zero indicates octal
conversion, and a leading ``0x'' or ``0X'' hexadecimal conversion.
Otherwise, decimal conversion is used.
Truncation from long to int can, of course, take place upon
assignment or by an explicit cast.
If the value represented by str would cause overflow, LONGMAX or
LONGMIN is returned (according to the sign of the value), and errno
is set to the value, ERANGE.
strtoul is similar to strtol except that strtoul returns as an
unsigned long integer the value represented by str. If the value
represented by str would cause overflow, ULONGMAX is returned, and
errno is set to the value, ERANGE.
Except for behavior on error, atol(str) is equivalent to:
strtol(str, (char **)NULL, 10).
7/91 Page 1
strtol(3C) (C Programming Language Utilities) strtol(3C)
Except for behavior on error, atoi(str) is equivalent to: (int)
strtol(str, (char **)NULL, 10).
DIAGNOSTICS
If strtol is given a base greater than 36, it returns 0 and sets
errno to EINVAL.
SEE ALSO
ctype(3C), scanf(3S), strtod(3C).
NOTES
strtol no longer accepts values greater than LONGMAX as valid input.
Use strtoul instead.
Page 2 7/91