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 warn("statvfs '%s':", mnt
);
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 warn("statvfs '%s':", mnt
);
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 warn("statvfs '%s':", mnt
);
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 warn("statvfs '%s':", mnt
);
62 (float)fs
.f_frsize
* ((float)fs
.f_blocks
-
63 (float)fs
.f_bfree
) / 1024 / 1024 / 1024);