strtoul - convert a string to an unsigned long integer.


     #include <stdlib.h>

     unsigned long int strtoul(const char *nptr, char **endptr,
     int base)


     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 char-
     acter 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.)


     The strtoul() function returns  either  the  result  of  the
     conversion  or, if there was a leading minus sign, the nega-
     tion 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.


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


     SVID 3, BSD 4.3, ISO 9899


     atof(3), atoi(3), atol(3),


     Ignores the current locale.