С здесь :
Используйте API statvfs
:
// header for statvfs
#include <sys/statvfs.h>
, а прототип statvfs
-
int statvfs(const char *path, struct statvfs *buf);
Результаты будут заполнены в buf statvfs
struct:
struct statvfs {
unsigned long f_bsize; /* filesystem block size */
unsigned long f_frsize; /* fragment size */
fsblkcnt_t f_blocks; /* size of fs in f_frsize units */
fsblkcnt_t f_bfree; /* # free blocks */
fsblkcnt_t f_bavail; /* # free blocks for unprivileged users */
fsfilcnt_t f_files; /* # inodes */
fsfilcnt_t f_ffree; /* # free inodes */
fsfilcnt_t f_favail; /* # free inodes for unprivileged users */
unsigned long f_fsid; /* filesystem ID */
unsigned long f_flag; /* mount flags */
unsigned long f_namemax; /* maximum filename length */
};
Тип возвращаемого значения:
В случае успеха возвращается ноль. В случае ошибки возвращается -1, и значение errno устанавливается соответствующим образом.
Также обратитесь к справочной странице man3 команды statvfs
для получения более подробной информации.