Manpage of STRTOULL
1.35 `strtoull'--string to unsigned long long
unsigned long long _strtoull_r(void *REENT, const char *S,
char **PTR, int BASE);
If the value of BASE is zero, the subject string is expected to look
like a normal C integer constant (save that no optional sign is
permitted): a possible `0x' indicating hexadecimal radix, and a number.
If BASE is between 2 and 36, the expected form of the subject is a
sequence of digits (which may include letters, depending on the base)
representing an integer in the radix specified by BASE. The letters
`a'-`z' (or `A'-`Z') are used as digits valued from 10 to 35. If BASE
is 16, a leading `0x' is permitted.
The subject sequence is the longest initial sequence of the input
string that has the expected form, starting with the first
non-whitespace character. If the string is empty or consists entirely
of whitespace, or if the first non-whitespace character is not a
permissible digit, the subject string is empty.
If the subject string is acceptable, and the value of BASE is zero,
`strtoull' attempts to determine the radix from the input string. A
string with a leading `0x' is treated as a hexadecimal value; a string
with a leading `0' and no `x' is treated as octal; all other strings are
treated as decimal. If BASE is between 2 and 36, it is used as the
conversion radix, as described above. Finally, a pointer to the first
character past the converted subject string is stored in PTR, if PTR is
not `NULL'.
If the subject string is empty (that is, if `*'S does not start with
a substring in acceptable form), no conversion is performed and the
value of S is stored in PTR (if PTR is not `NULL').
The alternate function `_strtoull_r' is a reentrant version. The
extra argument REENT is a pointer to a reentrancy structure.
`strtoull' returns `ULONG_LONG_MAX' if the magnitude of the converted
value is too large, and sets `errno' to `ERANGE'.
`strtoull' requires no supporting OS subroutines.
will give you access to the complete manual.