statvfs(3)

NUME
statvfs, fstatvfs - obține statistici ale sistemului de fișiere

BIBLIOTECA
Biblioteca C standard (libc, -lc)

SINOPSIS
#include <sys/statvfs.h>

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

DESCRIERE
Funcția statvfs() returnează informații despre un sistem de fișiere montat. path este numele rutei oricărui fișier din sistemul de fișiere montat. buf este un indicator către o structură statvfs definită aproximativ după cum urmează:

    struct statvfs {
        unsigned long  f_bsize;    /* Dimensiunea blocului sistemului de fișiere */
        unsigned long  f_frsize;   /* Dimensiunea fragmentului */
        fsblkcnt_t     f_blocks;   /* Dimensiunea sistemului de fișiere
                                      în unități f_frsize */
        fsblkcnt_t     f_bfree;    /* Numărul de blocuri libere */
        fsblkcnt_t     f_bavail;   /* Numărul de blocuri libere pentru
                                      utilizatorii neprivilegiați */
        fsfilcnt_t     f_files;    /* Numărul de noduri-i */
        fsfilcnt_t     f_ffree;    /* Numărul de noduri-i libere */
        fsfilcnt_t     f_favail;   /* Numărul de noduri-i libere pentru
                                      utilizatorii neprivilegiați */
        unsigned long  f_fsid;     /* ID-ul sistemului de fișiere */
        unsigned long  f_flag;     /* Fanioane de montare */
        unsigned long  f_namemax;  /* Lungimea maximă a numelui de fișier */
    };

Aici tipurile fsblkcnt_t și fsfilcnt_t sunt definite în <sys/types.h>. Ambele erau anterior unsigned long.

Câmpul f_flag este o mască de biți care indică diverse opțiuni care au fost utilizate la montarea acestui sistem de fișiere. Acesta conține zero sau mai multe dintre următoarele fanioane:

ST_MANDLOCK
    Blocarea obligatorie este permisă pe sistemul de fișiere (a se vedea fcntl(2)).

ST_NOATIME
    Nu se actualizează timpii de acces; a se vedea mount(2).

ST_NODEV
    Interzice accesul la fișierele speciale ale dispozitivului pe acest sistem de fișiere.

ST_NODIRATIME
    Nu actualizează timpii de acces la directoare; a se vedea mount(2).

ST_NOEXEC
    Execuția de programe nu este permisă pe acest sistem de fișiere.

ST_NOSUID
    Biții set-user-ID și set-group-ID sunt ignorați de exec(3) pentru fișierele executabile de pe acest sistem de fișiere

ST_RDONLY
    Acest sistem de fișiere este montat numai-pentru-citire.

ST_RELATIME
    Actualizează atime în raport cu mtime/ctime; a se vedea mount(2).

ST_SYNCHRONOUS
    Scrierile sunt sincronizate cu sistemul de fișiere imediat (a se vedea descrierea lui O_SYNC în open(2)).

Nu este specificat dacă toți membrii structurii returnate au valori semnificative pe toate sistemele de fișiere.

fstatvfs() returnează aceleași informații despre un fișier deschis la care se face referire prin descriptorul fd.

VALOAREA RETURNATĂ
În caz de succes, se returnează zero. În caz de eroare, se returnează -1, iar errno este configurată pentru a indica eroarea.

ERORI-IEȘIRE

EACCES
    (statvfs()) Permisiunea de căutare este refuzată pentru o componentă a prefixului rutei path; (a se vedea și path_resolution(7)).

EBADF
    (fstatvfs()) fd nu este un descriptor de fișier deschis valid.

EFAULT
    Buf sau path indică o adresă nevalidă.

EINTR
    Acest apel a fost întrerupt de un semnal; a se vedea signal(7).

EIO A apărut o eroare de In/Ieș în timpul citirii din sistemul de fișiere.

ELOOP
    (statvfs()) Prea multe legături simbolice au fost întâlnite în traducerea path.

ENAMETOOLONG
    (statvfs()) Ruta path este prea lungă.

ENOENT
    (statvfs()) Fișierul menționat de path nu există.

ENOMEM
    Nu a fost disponibilă suficientă memorie pentru nucleu.

ENOSYS
    Sistemul de fișiere nu acceptă acest apel.

ENOTDIR
    (statvfs()) O componentă a prefixului rutei path nu este un director.

EOVERFLOW
    Unele valori erau prea mari pentru a fi reprezentate în structura returnată.

ATRIBUTE
Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
Interfață | Atribut | Valoare
statvfs(), fstatvfs() | Siguranța firelor | MT-Safe

VERSIUNI
Numai fanioanele ST_NOSUID și ST_RDONLY ale câmpului f_flag sunt specificate în POSIX.1. Pentru a obține definițiile celorlalte fanioane, trebuie definit _GNU_SOURCE.

NOTE
Nucleul Linux are apelurile de sistem statfs(2) și fstatfs(2) pentru a utiliza acest apel de bibliotecă.

Implementările glibc ale

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

utilizează câmpurile f_frsize, f_frsize și f_bsize returnate printr-un apel către statvfs() cu argumentul path.

În Linux, f_favail este întotdeauna același cu f_ffree și nu există nicio modalitate prin care un sistem de fișiere să raporteze contrariul. Aceasta nu este o problemă, deoarece nu există sisteme de fișiere cu o rezervare a nodului-i rădăcină.

STANDARDE
POSIX.1-2008.

ISTORIC
POSIX.1-2001.

Înainte de glibc 2.13, statvfs() a completat biții câmpului f_flag prin scanarea opțiunilor de montare prezentate în /proc/mounts. Cu toate acestea, începând cu Linux 2.6.36, apelul de sistem subiacent statfs(2) furnizează informațiile necesare prin intermediul câmpului f_flags, iar de la glibc 2.13, funcția statvfs() va utiliza informațiile din acest câmp în loc să scaneze /proc/mounts.

CONSULTAȚI ȘI
statfs(2)

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.