Provided by:

manpages-pt-dev_20040726-4_all **NAME**

strtoul - convert a string to an unsigned long integer.

**SYNOPSIS**

**#include** **<stdlib.h>**
**unsigned** **long** **int** **strtoul(const** **char** *****__nptr__**,** **char** ******__endptr__**,**
**int** base**)**

**DESCRIPTION**

The **strtoul()** function converts the string in __nptr__ to an unsigned 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 an unsigned 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, **strtoul()** stores the address of the first
invalid character in __*endptr__. If there were no digits at all,
**strtoul()** stores the original value of __nptr__ in __*endptr__. (Thus, if
__*nptr__ is not `\0' but __**endptr__ is `\0' on return, the entire string is
valid.)

**RETURN** **VALUE**

The **strtoul()** function returns either the result of the conversion or,
if there was a leading minus sign, the negation of the result of the
conversion, unless the original (non-negated) value would overflow; in
the latter case, **strtoul()** returns ULONG_MAX and sets the global
variable __errno__ to ERANGE.

**ERRORS**

**ERANGE** The given string was out of range; the value converted has been
clamped.

**CONFORMING** **TO**

SVID 3, BSD 4.3, ISO 9899

**SEE** **ALSO**

**atof**(3), **atoi**(3), **atol**(3), **strtod**(3), **strtol**(3)

**BUGS**

Ignores the current locale.