Linux / Unix Command: strtoq |

Command Library |

## NAME

strtol, strtoll, strtoq - convert a string to a long integer.## SYNOPSIS

#include <stdlib.h>long intstrtol(const char *nptr, char **endptr, intbase);long long intstrtoll(const char *nptr, char **endptr, intbase);

## DESCRIPTION

The**strtol()**function converts the initial part of 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 character 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 digits at
all, **strtol()** stores the original value of *nptr* in
**endptr* (and returns 0).
In particular, if **nptr* is not `\0' but ***endptr*
is `\0' on return, the entire string is valid.

The
**strtoll()**
function works just like the
**strtol()**
function but returns a long long integer value.

## RETURN VALUE

The**strtol()**function returns the result of the conversion, unless the value would underflow or overflow. If an underflow occurs,

**strtol()**returns LONG_MIN. If an overflow occurs,

**strtol()**returns LONG_MAX. In both cases,

*errno*is set to ERANGE. Precisely the same holds for

**strtoll()**(with LLONG_MIN and LLONG_MAX instead of LONG_MIN and LONG_MAX).

## ERRORS

**ERANGE**- The resulting value was out of range.
**EINVAL**-
(not in C99)
The given
*base*contains an unsupported value.

The implementation may also set *errno* to **EINVAL** in case
no conversion was performed (no digits seen, and 0 returned).

## SEE ALSO

**atof**(3),

**atoi**(3),

**atol**(3),

**strtod**(3),

**strtoul**(3)

**Important:**
Use the *man* command (*% man*) to see how a command is used on your
particular computer.