strtol(), strtoll()

Convert a string into a long integer

Synopsis:

#include <stdlib.h>

long int strtol( const char * ptr,
                 char ** endptr,
                 int base );

long long strtoll( const char * ptr,
                   char ** endptr,
                   int base );

Arguments:

ptr
A pointer to the string to parse.
endptr
If this argument isn't NULL, the function stores in it a pointer to the first unrecognized character found in the string.
base
The base of the number being parsed:

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The strtol() function converts the string pointed to by ptr to an object of type long int; strtoll() converts the string pointed to by ptr to an object of type long long.

These functions recognize strings that contain the following:

The conversion ends at the first unrecognized character. If endptr isn't NULL, a pointer to the unrecognized character is stored in the object endptr points to.

Returns:

The converted value.

If the correct value causes an overflow, the function will return either LONG_MAX||LONGLONG_MAX or LONG_MIN||LONGLONG_MIN depending to the sign, and errno will be set to ERANGE. If base is out of range, the function returns zero and sets errno to EINVAL.

Examples:

#include <stdlib.h>

int main( void )
  {
    long int v;

    v = strtol( "12345678", NULL, 10 );
    return EXIT_SUCCESS;
  }

Classification:

ANSI, POSIX 1003.1

Safety:
Cancellation point No
Interrupt handler Yes
Signal handler Yes
Thread Yes

See also:

atoi(), atol(), errno, itoa(), ltoa(), sscanf(), strtoul(), ultoa(), utoa()