scan_ulong(3)

scan_ulong3

Parse an unsigned long integer in decimal ascii representation

Usage

#include <libowfat/scan.h>

size_t scan_ulong(const char *src,unsigned long *dest);

Overview

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

Releases

8 releases since Debian 3.0 (Woody); the text changed 3 times.

  1. 3.0
  2. 7–8
  3. 9–11
  4. 12–13

From libowfat-dev 0.32-5 in Debian 13 (Trixie). Parsed by carta from the page's man source.