humanize_number(9)
- NetBSD Manual Pages
HUMANIZE_NUMBER(9) NetBSD Kernel Developer's Manual HUMANIZE_NUMBER(9)
NAME
humanize_number, format_bytes -- human readable numbers
SYNOPSIS
int
humanize_number(char *buf, size_t len, uint64_t number,
const char *suffix, int divisor);
int
format_bytes(char *buf, size_t len, uint64_t number);
DESCRIPTION
The humanize_number() function formats the unsigned 64-bit quantity given
in number into buf. A space and then suffix is appended to the end. The
supplied buf must be at least len bytes long.
If the formatted number (including suffix) is too long to fit into buf,
humanize_number() divides number by divisor until it will fit. In this
case, suffix is prefixed with the appropriate SI designator. Suitable
values of divisor are 1024 or 1000 to remain consistent with the common
meanings of the SI designator prefixes.
The prefixes are:
Prefix Description Multiplier
k kilo 1024
M mega 1048576
G giga 1073741824
T tera 1099511627776
P peta 1125899906842624
E exa 1152921504606846976
The len argument must be at least 4 plus the length of suffix, in order
to ensure a useful result in buf.
The format_bytes() function is a front-end to humanize_number(). It
calls the latter with a suffix of ``B''. Also, if the suffix in the
returned buf would not have a prefix, the suffix is removed. This means
that a result of ``100000'' occurs, instead of ``100000 B''.
RETURN VALUES
Both functions return the number of characters stored in buf (excluding
the terminating NUL) upon success, or -1 upon failure.
SEE ALSO
humanize_number(3)
HISTORY
These functions first appeared in NetBSD 1.5.
NetBSD 9.3 August 7, 2010 NetBSD 9.3
Powered by man-cgi (2021-06-01).
Maintained for NetBSD
by Kimmo Suominen.
Based on man-cgi by Panagiotis Christias.