## SYNOPSIS

`
#include <wchar.h>
`

`long wcstol(const wchar_t * nptr,
wchar_t **endptr, int base);`

`long long wcstoll(const wchar_t * nptr,
wchar_t **endptr, int base);`

`quad_t wcstoq(const wchar_t * nptr,
wchar_t **endptr, int base);`

`long wcstol_l(const wchar_t * nptr,
wchar_t **endptr, int base, locale_t locale);`

`long long wcstoll_l(const wchar_t * nptr,
wchar_t **endptr, int base, locale_t locale);`

`#include <inttypes.h>`

`intmax_t wcstoimax(const wchar_t * nptr,
wchar_t **endptr, int base);`

`intmax_t wcstoimax_l(const wchar_t * nptr,
wchar_t **endptr, int base, locale_t locale);`

## DESCRIPTION

The ` wcstol()` class of functions
convert the input string

*nptr*into a

`long`,

`long long`,

`quad_t`or

`intmax_t`value. The scanning stops at the first character that is not recognized as part of the number. This character can be the terminating

`NULL`. This conversion occurs if a string of the expected form is passed in. The expected form consists of an initial, possibly empty, sequence of white-space characters, a sequence of characters interpreted as an integer, and a final sequence of wide characters that are not recognized as part followed by a terminating

`NULL`character.

If the value of *base* is
0, then the expected form of the sequence to be converted must be
that of a decimal constant, octal constant or a hexadecimal
constant. Each of the may be preceded by a `+` or `-`
sign. A decimal constant must begin
with a non-zero digit and be followed by a sequence of decimal
digits. An octal constant must begin with a 0 prefix an
optionally followed by a sequence of digits ranging from 0 to 7.
A hexadecimal constant must be preceded by a `0x` or `0X`
and followed by a sequence of decimal digits and the letters
`a`(`A`) to `f`(`F`) with
the values of 10 to 15 respectively.

If the value of *base* is
between 2 and 36, then the expected form of the sequence to be
converted must be a sequence of digits and letters representing
an integer with a radix defined by *base*.
The letters `a`(`A`) through
`z`(`Z`) represent the values from 10 to 35
respectively. Only letters whose value are less than *base*
are permitted. If the value of base is 16, then the sequence to
be converted may optionally be preceded by `0x` or `0X`.

A pointer to the final sequence
of wide characters is stored in the object pointed to by *endptr*,
provided that *endptr* is not a `NULL` pointer.

## PARAMETERS

*nptr*-
Is the null-terminated string to convert.

*endptr*-
Points to the character that stops scan.

*base*-
Is the number base to use.

*locale*-
Is a

`locale_t`perhaps returned byornewlocale() `LC_GLOBAL_LOCALE`or`0`for the current thread locale set with.uselocale()

## RETURN VALUES

Upon successful completion the ` wcstol()` class of
functions return the converted value, if any. If no conversion
could be performed, 0 is returned and

`errno`is set appropriately. If the converted value is outside the range of representable values,

`LONG_MAX`or

`LONG_MIN`(or LONGLONG_MAX/LONGLONG_MIN, or QUAD_MAX/QUAD_MIN, or INTMAX_MAX/INTMAX_MIN), the sign of the converted value and

`errno`is set appropriately.

`ERANGE`-
The value is outside the range of representable values.

`EINVAL`-
The conversion could not be performed or the value of

*base*is not supported.

## CONFORMANCE

` wcstol()`,

`and`wcstoll()

`conform to ANSI/ISO 9899-1990.`wcstoimax()

## MULTITHREAD SAFETY LEVEL

MT-Safe.

## PORTING ISSUES

None.

## AVAILABILITY

PTC MKS Toolkit for Professional Developers

PTC MKS Toolkit for Professional Developers 64-Bit Edition

PTC MKS Toolkit for Enterprise Developers

PTC MKS Toolkit for Enterprise Developers 64-Bit Edition

## SEE ALSO

**Functions:**,newlocale() ,setlocale() ,wcstod() ,wcstod_l() ,wcstof() ,wcstof_l() ,wcstold() ,wcstold_l() ,wcstoul() ,wcstoul_l() ,wcstoull() ,wcstoull_l() ,wcstoumax() ,wcstoumax_l() wcstouq()

PTC MKS Toolkit 10.4 Documentation Build 39.