# fstatvfs

## PROLOG



           This manual page is part of the POSIX Programmer's Manual.  The
           Linux implementation of this interface may differ (consult the
           corresponding Linux manual page for details of Linux behavior), or
           the interface may not be implemented on Linux.
    


## NAME



           fstatvfs, statvfs — get file system information
    


## SYNOPSIS



           #include <sys/statvfs.h>
    
           int fstatvfs(int _fildes_ , struct statvfs *_buf_);
           int statvfs(const char *restrict _path_ , struct statvfs *restrict _buf_);
    


## DESCRIPTION



           The _fstatvfs_() function shall obtain information about the file
           system containing the file referenced by _fildes_.
    
           The _statvfs_() function shall obtain information about the file
           system containing the file named by _path_.
    
           For both functions, the _buf_ argument is a pointer to a **statvfs**
           structure that shall be filled. Read, write, or execute permission
           of the named file is not required.
    
           The following flags can be returned in the _f_flag_ member:
    
           ST_RDONLY   Read-only file system.
    
           ST_NOSUID   Setuid/setgid bits ignored by _exec_.
    
           It is unspecified whether all members of the **statvfs** structure
           have meaningful values on all file systems.
    


## RETURN VALUE



           Upon successful completion, _statvfs_() shall return 0. Otherwise,
           it shall return -1 and set _errno_ to indicate the error.
    


## ERRORS



           The _fstatvfs_() and _statvfs_() functions shall fail if:
    
           **EIO** An I/O error occurred while reading the file system.
    
           **EINTR** A signal was caught during execution of the function.
    
           **EOVERFLOW**
                  One of the values to be returned cannot be represented
                  correctly in the structure pointed to by _buf_.
    
           The _fstatvfs_() function shall fail if:
    
           **EBADF** The _fildes_ argument is not an open file descriptor.
    
           The _statvfs_() function shall fail if:
    
           **EACCES** Search permission is denied on a component of the path
                  prefix.
    
           **ELOOP** A loop exists in symbolic links encountered during
                  resolution of the _path_ argument.
    
           **ENAMETOOLONG**
                  The length of a component of a pathname is longer than
                  {NAME_MAX}.
    
           **ENOENT** A component of _path_ does not name an existing file or _path_
                  is an empty string.
    
           **ENOTDIR**
                  A component of the path prefix names an existing file that
                  is neither a directory nor a symbolic link to a directory,
                  or the _path_ argument contains at least one non-<slash>
                  character and ends with one or more trailing <slash>
                  characters and the last pathname component names an
                  existing file that is neither a directory nor a symbolic
                  link to a directory.
    
           The _statvfs_() function may fail if:
    
           **ELOOP** More than {SYMLOOP_MAX} symbolic links were encountered
                  during resolution of the _path_ argument.
    
           **ENAMETOOLONG**
                  The length of a pathname exceeds {PATH_MAX}, or pathname
                  resolution of a symbolic link produced an intermediate
                  result with a length that exceeds {PATH_MAX}.
    
           _The following sections are informative._
    


## EXAMPLES



       **Obtaining File System Information Using fstatvfs()**
           The following example shows how to obtain file system information
           for the file system upon which the file named **/home/cnd/mod1**
           resides, using the _fstatvfs_() function. The **/home/cnd/mod1** file is
           opened with read/write privileges and the open file descriptor is
           passed to the _fstatvfs_() function.
    
               #include <sys/statvfs.h>
               #include <fcntl.h>
    
               struct statvfs buffer;
               int            status;
               ...
               fildes = open("/home/cnd/mod1", O_RDWR);
               status  = fstatvfs(fildes, &buffer);
    
       **Obtaining File System Information Using statvfs()**
           The following example shows how to obtain file system information
           for the file system upon which the file named **/home/cnd/mod1**
           resides, using the _statvfs_() function.
    
               #include <sys/statvfs.h>
    
               struct statvfs buffer;
               int            status;
               ...
               status = statvfs("/home/cnd/mod1", &buffer);
    


## APPLICATION USAGE



           None.
    


## RATIONALE



           None.
    


## FUTURE DIRECTIONS



           None.
    


* * *