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.