-const char *make_human_readable_str(unsigned long val, unsigned long hr)
-{
- int i=0;
- static char str[10] = "\0";
- static const char strings[] = { 'k', 'M', 'G', 'T', 0 };
- unsigned long divisor = 1;
-
- if(val == 0)
- return("0");
- if(hr)
- snprintf(str, 9, "%ld", val/hr);
- else {
- while(val >= divisor && i <= 4) {
- divisor=divisor<<10, i++;
- }
- divisor=divisor>>10, i--;
- snprintf(str, 9, "%.1Lf%c", (long double)(val)/divisor, strings[i]);