NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | USAGE | ATTRIBUTES | SEE ALSO
#include <stdlib.h>long strtol(const char * str, char ** ptr, int base);
The strtol function returns the value represented by the character string pointed to by str as a long integer. The string is scanned up to the first character inconsistent with the base. Leading ``white-space'' characters (as defined by isspace in ctype (3STDC)) are ignored.
The input string is divided into three parts: an initial, possibly empty, sequence of white-space characters (as defined by isspace in ctype (3STDC)); a subject sequence interpreted as an integer represented in some radix determined by the value of base; and a final string of one or more unrecognized characters, including the terminating null byte of the input string. The strtol function attempts to convert the subject sequence to an integer and return the result.
A pointer to the final string is stored in the object pointed to by ptr, provided it is not a null pointer.
If base is positive, 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 be done upon assignment, or by using an explicit cast.
atol(str) is equivalent to strtol(str, (char **)NULL, 10) .
atoi(str) is equivalent to (int) strtol(str, (char **)NULL, 10) .
Upon successful completion strtol returns the converted value, if any. If no conversion could be performed, 0 is returned.
If the correct value is outside the range of representable values, LONG_MAX or LONG_MIN is returned (according to the sign of the value), and errno is set to ERANGE.
Because LONG_MIN and LONG_MAX are returned on error and are also valid returns on success, in order to check for error situations, an application should set errno to 0, then call strtol , then check errno; if it is non-zero, you can assume that an error has occurred.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | USAGE | ATTRIBUTES | SEE ALSO