Subject: humanize_number(9)/format_bytes(9) question
To: None <tech-kern@netbsd.org>
From: Allen Briggs <briggs@ninthwonder.com>
List: tech-kern
Date: 08/05/2000 10:53:05
I note that the man page for humanize_number didn't keep up with
sommerfeld's addition of the 'divisor' argument. I have changes
to update that man page, but I have another nit that I'd like to
either document or fix...
If you have:
char buffer[8];
format_bytes(buffer, sizeof(buffer), 4608ULL);
format_bytes(buffer, sizeof(buffer), 128 * 1024ULL);
...you'll get:
4608\0
128 KB\0
in both cases. Also in both cases, format_bytes will return 6 because it
returns the value that humanize_number did. Humanize_number returned the
first buffer as
4608 B\0
and format_bytes truncated it. These functions are defined to return
the number of characters stored in buffer (excluding the
terminating NUL) upon success, or -1 upon failure.
I'm inclined to say that they should return the number of characters
stored in buffer prior to the terminating NUL. This would mean a
simple adjustment to the return value as well as to the buffer if
the " B" is truncated. However, we lose a little bit of (IMO
irrelevant) information if we do that (i.e., that a couple extra
bytes of buffer beyond the current terminating NUL were touched).
So, does anyone have a problem with changing the return value of
format_bytes in this way?
-allen