mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк 

Златоуст.Ru

 

 

STATFS(2)                                             STATFS(2)

НАЗВАНИЕ 
        statfs, fstatfs - получение информации о файловой  сис-
        теме

СИНТАКСИС 
        #include 
        #include 
        
        int statfs (path, buf, len, fstyp)
        char *path;
        struct statfs *buf;
        int len, fstyp;
        
        int fstatfs (fildes, buf, len, fstyp)
        int fildes;
        struct statfs *buf;
        int len, fstyp;

ОПИСАНИЕ 
        Системный вызов statfs возвращает "родовой  суперблок",
        описывающий файловую систему. Вызов может использовать-
        ся для запроса информации как о смонтированной, так и о
        несмонтированной файловой системе; использование вызова
        несколько различается в этих двух случаях. В обоих слу-
        чаях аргумент  buf  является  указателем  на  структуру
        (описываемую ниже), поля которой заполняются в  резуль-
        тате выполнения системного вызова, а аргумент len зада-
        ет количество байт информации, которые  система  должна
        поместить в структуру. Значение len не должно превышать
        размер структуры: sizeof (struct statfs) и  обычно  len
        содержит именно этот размер; если аргумент len содержит
        меньшее значение, то система поместит в структуру ровно
        заданное количество байт, что дает возможность в  более
        поздних версиях добавлять к структуре statfs новые поля
        без перетрансляции старых программ.

        Если исследуемая  файловая  система  в  текущий  момент
        смонтирована, то маршрутное имя path должно быть именем
        файла, который располагается в данной файловой системе.
        В этом случае тип файловой системы известен ОС, и аргу-
        мент fstyp должен быть  нулевым.  Для  несмонтированной
        файловой системы маршрутное имя path должно быть именем
        специального блочного файла, содержащего ее, и аргумент
        fstyp должен содержать (ненулевой) тип файловой  систе-
        мы. В обоих случаях право доступа на чтение, запись или
        выполнение названного файла не требуется, но все  ката-
        логи, перечисленные в  маршрутном  имени,  должны  быть
        доступны на поиск.

        Структура statfs, на которую  указывает  аргумент  buf,
        состоит из следующих полей:

        short f_fstyp;     /* Тип файловой системы */
        short f_bsize;     /* Размер блока */
        short f_frsize;    /* Размер сегмента */
        long  f_blocks;    /* Общее количество блоков */
        long  f_bfree;     /* Счетчик свободных блоков */
        long  f_files;     /* Общее кол-во описателей файлов */
        long  f_ffree;     /* Счетчик свобод. описат. файлов */
        char  f_fname [6]; /* Имя тома */
        char  f_fpack [6]; /* Имя пакета */

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

        Системный вызов statfs является более поздним вариантом
        системного вызова ustat(2) и в новых  программах  пред-
        почтение следует отдавать statfs.

        Системные вызовы statfs и fstatfs завершаются неудачей,
        если выполнено хотя бы одно из следующих условий:

        [ENOTDIR]   Компонент маршрута не является каталогом.

        [ENOENT]    Заданный файл не существует.

        [EACCES]    Нет права на поиск для компонента маршрута.

        [EFAULT]    Аргументы buf или path указывают за пределы
                    отведенного процессу адресного  пространст-
                    ва.

        [EBADF]     Аргумент  fildes  не  является   корректным
                    дескриптором открытого файла.

        [EINVAL]    Аргумент fstyp  содержит  некорректный  тип
                    файловой системы; path задает не  специаль-
                    ный блочный файл и аргумент fstyp не  равен
                    0; аргумент len отрицателен  или  превышает
                    sizeof (struct statfs).

        [ENOLINK]   Маршрутное имя path указывает на  удаленный
                    компьютер, связи с которым в данный  момент
                    нет.

        [EMULTIHOP] Компоненты path требуют многократного обра-
                    щения к удаленным компьютерам.

СМ. ТАКЖЕ 
        chmod(2),  chown(2),   creat(2),   link(2),   mknod(2),
        pipe(2),   read(2),   time(2),   unlink(2),   utime(2),
        ustat(2), write(2), fs(4).

ДИАГНОСТИКА 
        При успешном завершении результат  равен  0;  в  случае
        ошибки возвращается -1, а переменной errno присваивает-
        ся код ошибки.



 

 

Бернадинер Марк Абрамович

Мое резюме

Компьютерная страничка

Ресурсы сети

Фотоальбом

 

 

 

mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк