You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Manvendra Bhangui edited this page Feb 25, 2024
·
4 revisions
NAME
scan_ulong - parse an unsigned long integer in decimal ASCII
representation
SYNTAX
#include <scan.h>
size_t scan_ulong(const char *src,unsigned long *dest);
DESCRIPTION
scan_ulong parses an unsigned long integer in decimal ASCII
representation from src and writes the result into dest. It returns
the number of bytes read from src.
Leading + or - or space (or anything outside of 0-9) is not accepted.
The libc conventions of "023" for octal or "0x23" for hexadecimal are
not supported.
scan_ulong will abort the scan if the next character is not a digit, or
if it is a digit but adding it to the number would lead to an integer
overflow.
RETURN VALUE
scan_ulong returns the number of characters successfully scanned and
processed from src.
EXAMPLES
scan_ulong("23",&i) -> i=23, return 2
scan_ulong("+23",&i) -> return 0
scan_ulong("-23",&i) -> return 0
scan_ulong(" 23",&i) -> return 0
scan_ulong("23,42",&i) -> i=23, return 2
scan_ulong("023",&i) -> i=23, return 3
scan_ulong("0x23",&i) -> i=0, return 1
scan_ulong("4294967296",&i") -> i=429496729, return 9 // 32-bit system