ustat(2) получить статистику по файловой системе

ОБЗОР

#include <sys/types.h>
#include <unistd.h> /* libc[45] */
#include <ustat.h> /* glibc2 */



int ustat(dev_t dev, struct ustat *ubuf);

ОПИСАНИЕ

ustat() возвращает информацию о смонтированной файловой системе. В dev указывается номер, который идентифицирует устройство, содержащее нужную файловую систему. Аргумент ubuf является указателем на структуру ustat, которая имеет следующий вид:
daddr_t f_tfree;      /* всего свободных блоков */
ino_t   f_tinode;     /* количество свободных индексных дескрипторов */
char    f_fname[6];   /* имя Filsys */
char    f_fpack[6];   /* имя Filsys pack */

Обработка последних двух полей, f_fname и f_fpack, не реализована, и они всегда будут заполнены нулевыми символами ('\0').

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

В случае успешного завершения возвращается ноль и структура ustat, на которую указывает ubuf, будет заполнена значениями. В случае ошибки возвращается -1, а значение errno устанавливается соответствующим образом.

ОШИБКИ

EFAULT
ubuf указывает за пределы доступного адресного пространства.
EINVAL
dev не указывает на устройство, содержащее смонтированную файловую систему.
ENOSYS
Смонтированная файловая система, на которую ссылается dev, не поддерживает данную операцию или версия Linux меньше, чем 1.3.16.

СООТВЕТСТВИЕ СТАНДАРТАМ

SVr4.

ЗАМЕЧАНИЯ

Вызов ustat() устарел и предоставляется только для совместимости. Во всех новых программах вместо него нужно использовать вызов statfs(2).

Замечания, касающиеся HP-UX

Версия структуры ustat в HP-UX содержит дополнительное поле f_blksize, которого в других версиях нет. HP предупреждает: в некоторых файловых системах количество свободных индексных дескрипторов (inodes) не изменяется. Для таких файловых систем в поле f_tinode возвращается значение -1. В некоторых файловых системах индексные дескрипторы выделяются динамически. Для таких файловых систем будет возвращено текущее количество свободных индексных дескрипторов.