Xinqi Bao's Git
1 /* See LICENSE file for copyright and license details. */
5 #include <sys/statvfs.h>
10 disk_free(const char *mnt
)
14 if (statvfs(mnt
, &fs
) < 0) {
15 fprintf(stderr
, "statvfs '%s': %s\n", mnt
, strerror(errno
));
20 (float)fs
.f_frsize
* (float)fs
.f_bavail
/ 1024 / 1024 / 1024);
24 disk_perc(const char *mnt
)
28 if (statvfs(mnt
, &fs
) < 0) {
29 fprintf(stderr
, "statvfs '%s': %s\n", mnt
, strerror(errno
));
33 return bprintf("%d", (int)(100 *
34 (1.0f
- ((float)fs
.f_bavail
/ (float)fs
.f_blocks
))));
38 disk_total(const char *mnt
)
42 if (statvfs(mnt
, &fs
) < 0) {
43 fprintf(stderr
, "statvfs '%s': %s\n", mnt
, strerror(errno
));
48 (float)fs
.f_frsize
* (float)fs
.f_blocks
/ 1024 / 1024 / 1024);
52 disk_used(const char *mnt
)
56 if (statvfs(mnt
, &fs
) < 0) {
57 fprintf(stderr
, "statvfs '%s': %s\n", mnt
, strerror(errno
));
62 (float)fs
.f_frsize
* ((float)fs
.f_blocks
-
63 (float)fs
.f_bfree
) / 1024 / 1024 / 1024);