HUMANIZE_NUMBER(9) | Kernel Developer's Manual | HUMANIZE_NUMBER(9) |
int
format_bytes(char *buf, size_t len, uint64_t number);
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”.
August 7, 2010 | NetBSD 6.1 |