Xinqi Bao's Git
3 #include <sys/statvfs.h>
8 disk_free(const char *mnt
)
12 if (statvfs(mnt
, &fs
) < 0) {
13 warn("Failed to get filesystem info");
17 return bprintf("%f", (float)fs
.f_bsize
* (float)fs
.f_bfree
/ 1024 / 1024 / 1024);
21 disk_perc(const char *mnt
)
26 if (statvfs(mnt
, &fs
) < 0) {
27 warn("Failed to get filesystem info");
31 perc
= 100 * (1.0f
- ((float)fs
.f_bfree
/ (float)fs
.f_blocks
));
33 return bprintf("%d", perc
);
37 disk_total(const char *mnt
)
41 if (statvfs(mnt
, &fs
) < 0) {
42 warn("Failed to get filesystem info");
46 return bprintf("%f", (float)fs
.f_bsize
* (float)fs
.f_blocks
/ 1024 / 1024 / 1024);
50 disk_used(const char *mnt
)
54 if (statvfs(mnt
, &fs
) < 0) {
55 warn("Failed to get filesystem info");
59 return bprintf("%f", (float)fs
.f_bsize
* ((float)fs
.f_blocks
- (float)fs
.f_bfree
) / 1024 / 1024 / 1024);