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_bsize
* (float)fs
.f_bfree
/ 1024 / 1024 / 1024);
24 disk_perc(const char *mnt
)
29 if (statvfs(mnt
, &fs
) < 0) {
30 fprintf(stderr
, "statvfs '%s': %s\n", mnt
, strerror(errno
));
34 perc
= 100 * (1.0f
- ((float)fs
.f_bfree
/ (float)fs
.f_blocks
));
36 return bprintf("%d", perc
);
40 disk_total(const char *mnt
)
44 if (statvfs(mnt
, &fs
) < 0) {
45 fprintf(stderr
, "statvfs '%s': %s\n", mnt
, strerror(errno
));
50 (float)fs
.f_bsize
* (float)fs
.f_blocks
/ 1024 / 1024 / 1024);
54 disk_used(const char *mnt
)
58 if (statvfs(mnt
, &fs
) < 0) {
59 fprintf(stderr
, "statvfs '%s': %s\n", mnt
, strerror(errno
));
64 (float)fs
.f_bsize
* ((float)fs
.f_blocks
-
65 (float)fs
.f_bfree
) / 1024 / 1024 / 1024);