#include <sys/statvfs.h>
The <sys/statvfs.h> header shall define the statvfs structure that includes at least the following members:
unsigned long f_bsize    File system block size. 
unsigned long f_frsize   Fundamental file system block size. 
fsblkcnt_t    f_blocks   Total number of blocks on file system in units of f_frsize. 
fsblkcnt_t    f_bfree    Total number of free blocks. 
fsblkcnt_t    f_bavail   Number of free blocks available to 
                         non-privileged process. 
fsfilcnt_t    f_files    Total number of file serial numbers. 
fsfilcnt_t    f_ffree    Total number of free file serial numbers. 
fsfilcnt_t    f_favail   Number of file serial numbers available to 
                         non-privileged process. 
unsigned long f_fsid     File system ID. 
unsigned long f_flag     Bit mask of f_flag values. 
unsigned long f_namemax  Maximum filename length. 
The fsblkcnt_t and fsfilcnt_t types shall be defined as described in <sys/types.h> .
The following flags for the f_flag member shall be defined:
The following shall be declared as functions and may also be defined as macros. Function prototypes shall be provided.
int statvfs(const char *restrict, struct statvfs *restrict); int fstatvfs(int, struct statvfs *);
The following sections are informative.
<sys/types.h>, the System Interfaces volume of IEEE Std 1003.1-2001, fstatvfs(), statvfs()