STRTOL(3) NEWLIB STRTOL(3)NAME
2.35 `strtol'--string to long
SYNOPSIS
#include <stdlib.h>
long strtol(const char *S, char **PTR,int BASE);
long _strtol_r(void *REENT,
const char *S, char **PTR,int BASE);
DESCRIPTION
The function `strtol' converts the string `*S' to a `long'. First, it
breaks down the string into three parts: leading whitespace, which is
ignored; a subject string consisting of characters resembling an inte‐
ger in the radix specified by BASE; and a trailing portion consisting
of zero or more unparseable characters, and always including the termi‐
nating null character. Then, it attempts to convert the subject string
into a `long' and returns the result.
If the value of BASE is 0, the subject string is expected to look
like a normal C integer constant: an optional sign, a possible ``0x''
indicating a hexadecimal base, and a number. If BASE is between 2 and
36, the expected form of the subject is a sequence of letters and dig‐
its representing an integer in the radix specified by BASE, with an
optional plus or minus sign. The letters `a'-`z' (or, equivalently,
`A'-`Z') are used to signify values from 10 to 35; only letters whose
ascribed values are less than BASE are permitted. If BASE is 16, a
leading `0x' is permitted.
The subject sequence is the longest initial sequence of the input
string that has the expected form, starting with the first non-white‐
space character. If the string is empty or consists entirely of white‐
space, or if the first non-whitespace character is not a permissible
letter or digit, the subject string is empty.
If the subject string is acceptable, and the value of BASE is zero,
`strtol' attempts to determine the radix from the input string. A
string with a leading `0x' is treated as a hexadecimal value; a string
with a leading 0 and no `x' is treated as octal; all other strings are
treated as decimal. If BASE is between 2 and 36, it is used as the con‐
version radix, as described above. If the subject string begins with a
minus sign, the value is negated. Finally, a pointer to the first char‐
acter past the converted subject string is stored in PTR, if PTR is not
`NULL'.
If the subject string is empty (or not in acceptable form), no con‐
version is performed and the value of S is stored in PTR (if PTR is not
`NULL').
The alternate function `_strtol_r' is a reentrant version. The
extra argument REENT is a pointer to a reentrancy structure.
RETURNS
`strtol' returns the converted value, if any. If no conversion was
made, 0 is returned.
`strtol' returns `LONG_MAX' or `LONG_MIN' if the magnitude of the
converted value is too large, and sets `errno' to `ERANGE'.
PORTABILITY
`strtol' is ANSI.
No supporting OS subroutines are required.
SEE ALSOstrtol is part of the library. The full documentation for is main‐
tained as a Texinfo manual. If info and are properly installed at your
site, the command
info
will give you access to the complete manual.
NEWLIB April 2010 STRTOL(3)