expand_number(3bsd)

expand_number3bsd

Format a number from human readable form

Usage

#include <libutil.h>

(See libbsd(7) for include usage.)

int

expand_number(const char *buf, uint64_t *num);

Library

library “libbsd”

Overview

The expand_number() function unformats the buf string and stores a unsigned 64-bit quantity at address pointed out by the num argument.

The expand_number() function follows the SI power of two convention.

The prefixes are:

PrefixDescriptionMultiplier
kkilo1024
Mmega1048576
Ggiga1073741824
Ttera1099511627776
Ppeta1125899906842624
Eexa1152921504606846976

Return values

The expand_number() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

Errors

The expand_number() function will fail if:

[EINVAL]

The given string contains no digits.

[EINVAL]

An unrecognized prefix was given.

[ERANGE]

Result doesn't fit into 64 bits.

Releases

5 releases since Debian 10 (Buster); the text changed 2 times.

  1. 10
  2. 11
  3. 12–Arch

History

The expand_number() function first appeared in FreeBSD 6.3.

From libbsd 0.12.2-2 in Arch Linux 2026-11-01. Parsed by carta from the page's mdoc source.