#include #include #include "ucore_string.h" char * uc_human_bytesz(uint64_t bytes, char *result, size_t result_len) { if(bytes < 1000) { snprintf(result, result_len, "%" PRIu64 " b", bytes); } else if (bytes < 1000000) { snprintf(result, result_len, "%.2f kB", bytes/1000.0); } else if (bytes < 1000000000ULL) { snprintf(result, result_len, "%.2f MB", bytes/1000000.0); } else if (bytes < 1000000000000ULL) { snprintf(result, result_len, "%.2f GB", bytes/1000000000.0); } else if (bytes < 1000000000000000ULL) { snprintf(result, result_len, "%.2f TB", bytes/1000000000000.0); } else { snprintf(result, result_len, "%.2f PB", bytes/1000000000000000.0); } return result; }