From 35b40be7aa6597fc37be3016483df88a2c7cc93c Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Sun, 10 Nov 2013 18:23:19 -0600 Subject: du from Ashwini Sharma. --- lib/pending.c | 16 ++++++++++++++++ lib/pending.h | 1 + 2 files changed, 17 insertions(+) (limited to 'lib') 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); -- cgit v1.2.3