STRTOL(3C)
NAME
strtol, atol, atoi, strtoul − convert string to integer
SYNOPSIS
#include <stdlib.h>
long strtol (str, ptr, base)
char ∗str, ∗∗ptr;
int base;
long atol (str)
char ∗str;
int atoi (str)
char ∗str;
unsigned long strtoul (str, ptr, base)
char ∗str, ∗∗ptr;
int base;
DESCRIPTION
Strtol(strtoul) converts the character string pointed to by str to long int (unsigned long int) representation. 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 no conversion can take place, zero is returned.
If base is greater than or equal to 2 and less than or equal to 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; a leading “0x” or “0X” hexadecimal conversion. Otherwise, decimal conversion is used.
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, the location pointed to by ptr is set to str, and zero is returned.
Atol(str) is equivalent to strtol (str, (char ∗∗)NULL, 10).
Atoi (str) is equivalent to (int) strtol (str, (char ∗∗)NULL, 10).
RETURN VALUE
Upon successful completion, all functions return the converted value, if any. If the correct value would cause overflow, strtol returns LONG_MAX or LONG_MIN (according to the sign of the value), and sets errno to ERANGE; strtoul returns ULONG_MAX and sets errno to ERANGE. Overflow conditions are ignored by atol and atoi.
For all other errors, zero is returned and errno is set to indicate the error.
ERRORS
Strtol and strtoul fail and errno is set if one of the following conditions is true:
[ERANGE] The value to be returned would have caused overflow.
[EINVAL] The value of base is not supported.
SEE ALSO
ctype(3C), strtod(3C), scanf(3S).
STANDARDS CONFORMANCE
strtol: SVID2, XPG2, XPG3, ANSI C
atoi: SVID2, XPG2, XPG3, POSIX.1, FIPS 151-1, ANSI C
atol: SVID2, XPG2, XPG3, POSIX.1, FIPS 151-1, ANSI C
strtoul: ANSI C
Hewlett-Packard Company — HP-UX Release 7.0: Sept 1989