sg_get_fs_stats — get filesystem statistics
#include <statgrab.h>
sg_fs_stats *sg_get_fs_stats(entries);
int *entries;
The sg_get_fs_stats takes a pointer to an int, entries, which is filled with the number of mounted file systems the machine has. The return value is a pointer to the first member of an array of sg_fs_stats structures; the number of entries in the array is returned in entries.
The function returns statistics about mounted filesystems, including free space and inode usage.
sg_get_fs_stats returns a pointer to a structure of type sg_fs_stats.
typedef struct {
char *device_name;
char *fs_type;
char *mnt_point;
long long size;
long long used;
long long avail;
long long total_inodes;
long long used_inodes;
long long free_inodes;
long long avail_inodes;
long long io_size;
long long block_size;
long long total_blocks;
long long free_blocks;
long long used_blocks;
long long avail_blocks;
} sg_fs_stats;
The name known to the operating system. (eg. on linux it might be hda)
The type of the filesystem.
The mount point of the file system.
The size, in bytes, of the file system.
The amount of space, in bytes, used on the filesystem.
The amount of space, in bytes, available on the filesystem.
The total number of inodes in the filesystem.
The number of used inodes in the filesystem.
The number of free inodes in the filesystem.
The number of free inodes available to non-privileged processes.
A suggested optimal block size for IO operations -- if you're reading or writing lots of data, do it in chunks of this size.
How big blocks actually are on the underlying filesystem (typically for purposes of stats reporting).
The total number of blocks in the filesystem.
The number of free blocks in the filesystem.
The number of used blocks in the filesystem.
The number of free blocks available to non-privileged processes.