fstatvfs(), fstatvfs64()

Получить информацию о файловой системе по файловому дескриптору

Прототип:

#include <sys/statvfs.h>
int fstatvfs( int fildes,
struct statvfs *buf );
int fstatvfs64( int fildes,
struct statvfs64 *buf );

Аргументы:

fildes
Дескриптор файла, который находится в файловой системе, информацию о которой нужно получить.
buf
Указатель на struct statvfs или struct statvfs64, в котором функция может разместить информацию о файловой системе.

Библиотека:

libc

Описание:

Функция fstatvfs() возвращает “основной суперблок”, описывающий файловую систему; его можно использовать для получения информации о смонтированной файловой системе. Функция fstatvfs64() - 64-битная версия fstatvfs(). Функции statvfs() и statvfs64() похожи, но вместо файлового дескриптора принимают путь к файлу.

Аргумент fildes - открытый файловый дескриптор, полученный в результате успешного вызова open(), creat(), dup(), fcntl() или pipe() для файла, находящегося в файловой системе. Тип файловой системы известен операционной системе. Доступы к чтению, записи и выполнению не обязательны для файла.

Аргумент buf - указатель на struct statvfs или struct statvfs64, которая заполняется функцией.

Возвращаемое значение:

0
Успешное завершение.
-1
Возникла ошибка. Код ошибки записан в errno.

Коды ошибок:

EBADF
Аргумент fildes не является открытым файловым дескриптором.
EFAULT
Аргумент buf указывает на некорректный адрес.
EINTR
Во время выполнения функции был получен сигнал.
EIO
Во время чтения фаловой системы произошла ошибка ввода/вывода.
EOVERFLOW
Одно из возвращенных значений не может быть корректно размещено в структуре, на которую указывает buf.

Классификация:

fstatvfs() — POSIX 1003.1 X/Open Systems Interfaces Extension; fstatvfs64() — Поддержка больших файлов

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

chmod(), chown(), creat(), dup(), fcntl(), link(), mknod(), open(), pipe(), read(), statvfs(), statvfs64(), struct statvfs, struct statvfs64, time(), unlink(), utime(), write()




Предыдущий раздел: Описание API системной библиотеки