diff options
Diffstat (limited to 'toolbox/df.c')
-rw-r--r-- | toolbox/df.c | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/toolbox/df.c b/toolbox/df.c deleted file mode 100644 index 9cd0743..0000000 --- a/toolbox/df.c +++ /dev/null @@ -1,85 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> -#include <sys/statfs.h> - -static int ok = EXIT_SUCCESS; - -static void printsize(long long n) -{ - char unit = 'K'; - long long t; - - n *= 10; - - if (n > 1024*1024*10) { - n /= 1024; - unit = 'M'; - } - - if (n > 1024*1024*10) { - n /= 1024; - unit = 'G'; - } - - t = (n + 512) / 1024; - printf("%4lld.%1lld%c", t/10, t%10, unit); -} - -static void df(char *s, int always) { - struct statfs st; - - if (statfs(s, &st) < 0) { - fprintf(stderr, "%s: %s\n", s, strerror(errno)); - ok = EXIT_FAILURE; - } else { - if (st.f_blocks == 0 && !always) - return; - printf("%-20s ", s); - printsize((long long)st.f_blocks * (long long)st.f_bsize); - printf(" "); - printsize((long long)(st.f_blocks - (long long)st.f_bfree) * st.f_bsize); - printf(" "); - printsize((long long)st.f_bfree * (long long)st.f_bsize); - printf(" %d\n", (int) st.f_bsize); - } -} - -int df_main(int argc, char *argv[]) { - printf("Filesystem Size Used Free Blksize\n"); - if (argc == 1) { - char s[2000]; - FILE *f = fopen("/proc/mounts", "r"); - - while (fgets(s, 2000, f)) { - char *c, *e = s; - - for (c = s; *c; c++) { - if (*c == ' ') { - e = c + 1; - break; - } - } - - for (c = e; *c; c++) { - if (*c == ' ') { - *c = '\0'; - break; - } - } - - df(e, 0); - } - - fclose(f); - } else { - int i; - - for (i = 1; i < argc; i++) { - df(argv[i], 1); - } - } - - exit(ok); -} |