Originální popis anglicky:
fstatvfs, statvfs - get file system information
Návod, kniha: POSIX Programmer's Manual
#include <sys/statvfs.h>
int fstatvfs(int
fildes, struct statvfs
*buf );
int statvfs(const char *restrict
path, struct
statvfs *restrict buf);
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.
Upon successful completion,
statvfs() shall return 0. Otherwise, it shall
return -1 and set
errno to indicate the error.
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 pathname exceeds {PATH_MAX} or a pathname
component 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 of path is not a
directory.
The
statvfs() function may fail if:
- ELOOP
- More than {SYMLOOP_MAX} symbolic links were encountered
during resolution of the path argument.
- ENAMETOOLONG
- Pathname resolution of a symbolic link produced an
intermediate result whose length exceeds {PATH_MAX}.
The following sections are informative.
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 <statvfs.h>
#include <fcntl.h>
struct statvfs buffer;
int status;
...
fildes = open("/home/cnd/mod1", O_RDWR);
status = fstatvfs(fildes, &buffer);
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 <statvfs.h>
struct statvfs buffer;
int status;
...
status = statvfs("/home/cnd/mod1", &buffer);
None.
None.
None.
chmod() ,
chown() ,
creat() ,
dup() ,
exec()
,
fcntl() ,
link() ,
mknod() ,
open() ,
pipe() ,
read() ,
time() ,
unlink() ,
utime() ,
write() , the Base Definitions volume of
IEEE Std 1003.1-2001,
<sys/statvfs.h>
Portions of this text are reprinted and reproduced in electronic form from IEEE
Std 1003.1, 2003 Edition, Standard for Information Technology -- Portable
Operating System Interface (POSIX), The Open Group Base Specifications Issue
6, Copyright (C) 2001-2003 by the Institute of Electrical and Electronics
Engineers, Inc and The Open Group. In the event of any discrepancy between
this version and the original IEEE and The Open Group Standard, the original
IEEE and The Open Group Standard is the referee document. The original
Standard can be obtained online at http://www.opengroup.org/unix/online.html
.