table of contents
- unstable 4.25.0-1
statvfs(3) | Library Functions Manual | 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¶
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 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.
2 mai 2024 | Pagini de manual de Linux 6.9.1 |