diff options
author | Rob Landley <rob@landley.net> | 2013-11-10 18:23:19 -0600 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2013-11-10 18:23:19 -0600 |
commit | 35b40be7aa6597fc37be3016483df88a2c7cc93c (patch) | |
tree | e0cd8558e66c73bf9540d08eccb8f53f20d9977a /lib | |
parent | 34b91a97ee6124765c0ee3a01771833ee6f8989a (diff) | |
download | toybox-35b40be7aa6597fc37be3016483df88a2c7cc93c.tar.gz |
du from Ashwini Sharma.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pending.c | 16 | ||||
-rw-r--r-- | lib/pending.h | 1 |
2 files changed, 17 insertions, 0 deletions
diff --git a/lib/pending.c b/lib/pending.c index d0cf3e26..a804d5b8 100644 --- a/lib/pending.c +++ b/lib/pending.c @@ -63,3 +63,19 @@ void daemonize(void) dup2(fd, 2); if (fd > 2) close(fd); } + +char *human_readable(unsigned long long size) +{ + static char buf[32]; + char *tmp = (buf+4); //unsigned long long can come in 20byte string. + int index, sz; + + for (index = 0; 1024 < size>>(10*index); index++); + sz = size>>(10*index); + if (sz < 10 && index) { + sprintf(tmp, "%llu", size>>(10*(index-1))); + sprintf(buf, "%c.%c", tmp[0], tmp[1]); + } else sprintf(buf, "%u", sz); + sprintf(buf, "%s%c", buf, " KMGTPE"[index]); + return buf; +} diff --git a/lib/pending.h b/lib/pending.h index 335ca522..fbd72c46 100644 --- a/lib/pending.h +++ b/lib/pending.h @@ -30,3 +30,4 @@ char *astrcat (char *, char *); char *xastrcat (char *, char *); void daemonize(void); +char *human_readable(unsigned long long size); |