lat/src/lib/util.c

38 lines
589 B
C
Raw Normal View History

2023-04-10 04:58:48 +00:00
#include <stdio.h>
#include <stdlib.h>
2023-04-10 16:51:42 +00:00
#include <sys/ioctl.h>
2023-04-10 04:58:48 +00:00
void die(const char *message) {
perror(message);
exit(1);
}
2023-04-10 16:51:42 +00:00
2023-04-11 00:14:18 +00:00
char *formatBytes(unsigned bytes, float *rounded) {
2023-04-10 16:51:42 +00:00
char *SIZES[] = {"bytes", "kB", "MB", "GB"};
2023-04-11 00:14:18 +00:00
unsigned size = bytes;
unsigned div = 0;
unsigned rem = 0;
2023-04-10 16:51:42 +00:00
while (size >= 1024 && div < (sizeof SIZES / sizeof *SIZES)) {
rem = (size % 1024);
div++;
size /= 1024;
}
2023-04-11 00:14:18 +00:00
*rounded = (float)size + (float)rem / 1024.0;
2023-04-10 16:51:42 +00:00
return SIZES[div];
}
2023-04-10 18:36:45 +00:00
int intlen(unsigned i) {
int l = 1;
while (i > 9) {
l++;
i /= 10;
}
return l;
}