a question regarding proper printf(3) formating and alignment
Dan Nelson
dnelson at allantgroup.com
Wed Nov 17 19:55:23 UTC 2010
In the last episode (Nov 17), Alexander Best said:
> hi there,
>
> i've looked at a lot of utilities in the bsd src tree and most of them
> seem to be doing something like this:
>
> Device 1M-blocks Used Avail Capacity
> /dev/label/swapfs 10239 0 10239 0%
> /dev/label/swap 8191 0 8191 0%
> Total 18431 0 18431 0%
>
> as you can see the header simply gets written with a number of tabs in
> between the keywords, but then the actual output aligns differently.
>
> i'd like to learn of ways formatting the header so that it aligns
> properly, whether the device name is 10 chars long or 1000. is there an
> example for this somewhere in the src tree?
/bin/ls does this for the user, group, and size columns. Note that this
only works if you batch up your output (or take two passes over your input
data). I seem to remember /usr/bin/find doing this dynamically by expanding
columns as it saw values that were larger than the previous max, but
apparently not (I just tested it).
--
Dan Nelson
dnelson at allantgroup.com
More information about the freebsd-questions
mailing list