posix_fallocate(3) Library Functions Manual posix_fallocate(3) NUME posix_fallocate - aloca spaiu pentru fiiere BIBLIOTECA Biblioteca C standard (libc, -lc) REZUMAT #include int posix_fallocate(int fd, off_t offset, off_t len); Cerine pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultai feature_test_macros(7)): posix_fallocate(): _POSIX_C_SOURCE >= 200112L DESCRIERE Funcia posix_fallocate() asigura alocarea spaiului pe disc pentru fiierul la care face referire descriptorul de fiier fd pentru octeii din intervalul care incepe la offset i continua pentru len octei. Dupa un apel reuit la posix_fallocate(), se garanteaza ca scrierile ulterioare pe octei din intervalul specificat nu vor eua din cauza lipsei de spaiu pe disc. Daca dimensiunea fiierului este mai mica decat offset+len, atunci fiierul este marit la aceasta dimensiune; in caz contrar, dimensiunea fiierului este lasata neschimbata. VALOAREA RETURNATA posix_fallocate() returneaza zero in caz de succes sau un numar de eroare in caz de eec. Reinei ca errno nu este definita. ERORI-IEIRE EBADF fd nu este un descriptor de fiier valid sau nu este deschis pentru scriere. EFBIG offset+len depaete dimensiunea maxima a fiierului. EINTR Un semnal a fost captat in timpul execuiei. EINVAL offset a fost mai mic decat 0, sau len a fost mai mic sau egal cu 0, sau sistemul de fiiere subiacent nu accepta operaia. ENODEV fd nu se refera la un fiier obinuit. ENOSPC There is not enough space left on the device containing the file referred to by fd. EOPNOTSUPP Sistemul de fiiere care conine fiierul la care se face referire prin fd nu accepta aceasta operaie. Acest cod de eroare poate fi returnat de bibliotecile C care nu realizeaza emulaia prezentata in NOTE, cum ar fi musl libc. ESPIPE fd se refera la o conducta. ATRIBUTE Pentru o explicaie a termenilor folosii in aceasta seciune, a se vedea attributes(7). +------------------+---------------------+-----------------------------+ |Interfaa | Atribut | Valoare | +------------------+---------------------+-----------------------------+ |posix_fallocate() | Sigurana firelor | MT-Safe (dar citii | | | | seciunea NOTE) | +------------------+---------------------+-----------------------------+ STANDARDE POSIX.1-2008. ISTORIC glibc 2.1.94. POSIX.1-2001 POSIX.1-2008 spune ca o implementare trebuie sa dea eroarea EINVAL daca len a fost 0, sau offset a fost mai mic decat 0. POSIX.1-2001 spune ca o implementare trebuie sa dea eroarea EINVAL daca len este mai mic decat 0, sau offset a fost mai mic decat 0, i poate sa dea eroarea daca len este egal cu zero. AVERTISMENTE In implementarea glibc, posix_fallocate() este implementat utilizand apelul de sistem fallocate(2), care este sigur pentru MT. In cazul in care sistemul de fiiere subiacent nu accepta fallocate(2), atunci operaia este emulata cu urmatoarele avertismente: o Emulaia este ineficienta. o Exista o condiie de concurena in care scrierile simultane de la un alt fir sau proces ar putea fi suprascrise cu octei nuli. o Exista o condiie de concurena in care creterile simultane ale dimensiunii fiierelor de catre un alt fir sau proces ar putea avea ca rezultat un fiier a carui dimensiune este mai mica decat cea ateptata. o Daca fd a fost deschis cu fanioanele O_APPEND sau O_WRONLY, funcia eueaza cu eroarea EBADF. In general, emulaia nu este sigura pentru MT. In Linux, aplicaiile pot utiliza fallocate(2) daca nu pot tolera avertismentele emulaiei. In general, acest lucru este recomandat numai daca aplicaia intenioneaza sa incheie operaia in cazul in care se returneaza EOPNOTSUPP, altfel aplicaia insai va trebui sa implementeze o soluie de rezerva cu aceleai probleme ca i emulaia furnizata de glibc. CONSULTAI I fallocate(1), fallocate(2), lseek(2), posix_fadvise(2) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.06 31 octombrie 2023 posix_fallocate(3)