Updated: October 28, 2024 |
Safely converts a string into a uint64_t
#include <qh/string.h>
int qh_str_to_uint64(const char *str, int base, uint64_t *number, size_t *end_offset)
This function is similar to strtoull(), but does more error checking on the result of the conversion and ensures that the result fits in a uint64_t. This simplifies the work required by the caller, which only needs to validate that the return value from qh_str_to_uint64() is EOK.
For conversion of strings that are part of a longer one (e.g., a comma-separated list), an optional end_offset parameter can be specified. When you specify end_offset, the function returns successfully even if there are trailing characters. When non-NULL, end_offset is always updated with the offset of the last character the function parsed. When NULL, the function treats trailing characters as invalid, except for characters recognized by isspace().
For more information on using this function, see the documentation for strtoull().
Unlike strtoull(), this function does not accept a negative sign.
EOK on success or a standard errno on failure (errno is also set, and number isn't updated except for ERANGE).