Man page - statvfs(3)

Packages contains this manual

Available languages:

en fr ja ru ro

Manual

statvfs

НАИМЕНОВАНИЕ
БИБЛИОТЕКА
ОБЗОР
ОПИСАНИЕ
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
ОШИБКИ
АТРИБУТЫ
ВЕРСИИ
ПРИМЕЧАНИЯ
СТАНДАРТЫ
ИСТОРИЯ
СМОТРИТЕ ТАКЖЕ
ПЕРЕВОД

НАИМЕНОВАНИЕ

statvfs, fstatvfs - получение статистики по файловой системе

БИБЛИОТЕКА

Стандартная библиотека языка C ( libc , -lc )

ОБЗОР

#include <sys/statvfs.h>

int statvfs(const char *restrict path , struct statvfs *restrict buf );
int fstatvfs(int
fd , struct statvfs * buf );

ОПИСАНИЕ

Функция statvfs () возвращает информацию о смонтированной файловой системе. path является путём любого файла, расположенного в смонтированной файловой системе. buf является указателем на структуру statvfs , определённую примерно следующим образом:

struct statvfs {
unsigned long f_bsize; /* размер блока файловой системы */
unsigned long f_frsize; /* размер фрагмента */
fsblkcnt_t f_blocks; /* размер ФС в единицах f_frsize */
fsblkcnt_t f_bfree; /* количество свободных блоков */
fsblkcnt_t f_bavail; /* количество свободных блоков
для непривилегированных пользователей */
fsfilcnt_t f_files; /* количество inodes */
fsfilcnt_t f_ffree; /* количество свободных inodes */
fsfilcnt_t f_favail; /* количество свободных inodes
для непривилегированных пользователей */
unsigned long f_fsid; /* идентификатор файловой системы */
unsigned long f_flag; /* параметры монтирования */
unsigned long f_namemax; /* максимальная длина имени файла */
};

Типы fsblkcnt_t и fsfilcnt_t определены в файле <sys/types.h> . Для их определения используется тип unsigned long .

Значение поля f_flag — битовая маска различных параметров, которые были указаны при монтировании этой файловой системы. В нём содержится ноль или несколько следующих флагов:
ST_MANDLOCK

Разрешена обязательная (mandatory) блокировка файловой системы (смотрите fcntl (2)).

ST_NOATIME

Не обновлять времена доступа; смотрите mount (2).

ST_NODEV

Запретить доступ к специальным файлам устройств в этой файловой системе.

ST_NODIRATIME

Не обновлять времена доступа к каталогам; смотрите mount (2).

ST_NOEXEC

Исполнение программ в этой файловой системе запрещено.

ST_NOSUID

Биты set-user-ID и set-group-ID игнорируются в exec (3) для исполняемых файлов в этой файловой системе.

ST_RDONLY

Файловая система смонтирована в режиме только для чтения.

ST_RELATIME

Обновлять atime относительно mtime/ctime; смотрите mount (2).

ST_SYNCHRONOUS

Выполнять синхронную запись в файловую систему немедленно (смотрите описание O_SYNC в open (2)).

Не указывается, будут ли при любых файловых системах членам возвращаемой структуры присвоены осмысленные данные.

fstatvfs () возвращает такую же информацию об открытом файле через его ссылку на дескриптор fd .

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

При успешном выполнении возвращается 0. При ошибке возвращается -1, а в errno содержится код ошибки.

ОШИБКИ

EACCES

( statvfs ()) Нет права на поиск одного из компонентов префикса пути path (см. также path_resolution (7)).

EBADF

( fstatvfs ()) fd не является корректным открытым дескриптором файла.

EFAULT

Buf или path указывает на неправильный адрес.

EINTR

Данный вызов был прерван сигналом; смотрите signal (7).

EIO

При чтении файловой системы произошла ошибка ввода-вывода.

ELOOP

( statvfs ()) Было обнаружено слишком много символьных ссылок при трансляции path .

ENAMETOOLONG

( statvfs ()) Слишком длинное значение аргумента path .

ENOENT

( statvfs ()) Файл, указанный в path , не существует.

ENOMEM

Недостаточное количество памяти ядра.

ENOSYS

Файловая система не поддерживает данный вызов.

ENOTDIR

( statvfs ()) Один из компонентов префикса пути path не является каталогом.

EOVERFLOW

Некоторые значения слишком велики, чтобы быть представленными в возвращаемой структуре.

АТРИБУТЫ

Описание терминов данного раздела смотрите в attributes (7).

Image grohtml-616515-1.png

ВЕРСИИ

В POSIX.1 в поле f_flag определены только флаги ST_NOSUID и ST_RDONLY . Чтобы получить определения остальных флагов нужно определить _GNU_SOURCE .

ПРИМЕЧАНИЯ

Для поддержки данной библиотечной функции в ядре Linux есть системные вызовы statfs (2) и fstatfs (2).

Реализации функций в glibc

pathconf(path, _PC_REC_XFER_ALIGN);
pathconf(path, _PC_ALLOC_SIZE_MIN);
pathconf(path, _PC_REC_MIN_XFER_SIZE);

используют, соответственно, поля f_frsize , f_frsize и f_bsize , возвращаемые вызовом statvfs () с аргументом path .

Under Linux, f_favail is always the same as f_ffree , and there’s no way for a filesystem to report otherwise. This is not an issue, since no filesystems with an inode root reservation exist.

СТАНДАРТЫ

POSIX.1-2008.

ИСТОРИЯ

POSIX.1-2001.

Before glibc 2.13, statvfs () populated the bits of the f_flag field by scanning the mount options shown in /proc/mounts . However, starting with Linux 2.6.36, the underlying statfs (2) system call provides the necessary information via the f_flags field, and since glibc 2.13, the statvfs () function will use information from that field rather than scanning /proc/mounts .

СМОТРИТЕ ТАКЖЕ

statfs (2)

ПЕРЕВОД

Русский перевод этой страницы руководства разработал(и) Alexander Golubev <fatzer2@gmail.com>, Azamat Hackimov <azamat.hackimov@gmail.com>, Hotellook, Nikita <zxcvbnm3230@mail.ru>, Spiros Georgaras <sng@hellug.gr>, Vladislav <ivladislavefimov@gmail.com>, Yuri Kozlov <yuray@komyakino.ru>, Иван Павлов <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков .