NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | ATTRIBUTES | SEE ALSO | STANDARDS
#include <stdlib.h> #include <limits.h>unsigned long strtoul(const char *nptr, char **endptr, int base);
The strtoul function converts the string in nptr to an unsigned long value. The conversion is done according to the base given, which must be between 2 and 36 inclusive, or be the special value of 0.
The string may begin with an arbitrary amount of white space (as determined by isspace (3STDC)) 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 value stopping at the end of the string or at the first character that does not produce a valid digit in the base given. (In bases above 10, the letter A in either upper or lowercase represents 10, B represents 11, and so forth, with Z representing 35.)
If endptr is non nil, strtoul stores the address of the first invalid character in *endptr. If there were no digits at all, however, strtoul stores the original value of nptr in *endptr. (Thus, if *nptr is not 0 but **endptr is 0 on return, the entire string will have been valid.)
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 that case, strtoul returns ULONG_MAX and, in contexts where it is supported, sets the global variable errno to ERANGE.
The string given was out of range; the converted value has been clamped.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
The strtoul function conforms to ANSI-C.
NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | ATTRIBUTES | SEE ALSO | STANDARDS