lockf(3) Library Functions Manual lockf(3) NUME lockf - aplica, testeaza sau elimina o blocare POSIX pe un fiier deschis BIBLIOTECA Biblioteca C standard (libc, -lc) REZUMAT #include int lockf(int fd, int cmd, off_t len); Cerine pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultai feature_test_macros(7)): lockf(): _XOPEN_SOURCE >= 500 || /* glibc >= 2.19: */ _DEFAULT_SOURCE || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE DESCRIERE Aplica, testeaza sau elimina un blocaj POSIX pe o seciune a unui fiier deschis. Fiierul este specificat prin fd, un descriptor de fiier deschis pentru scriere, aciunea prin cmd, iar seciunea este formata din poziiile de octei pos..pos+len-1 daca len este pozitiv i pos-len. pos-1 daca len este negativ, unde pos este poziia curenta a fiierului, iar daca len este zero, seciunea se extinde de la poziia curenta a fiierului pana la infinit, cuprinzand poziiile prezente i viitoare de sfarit de fiier. In toate cazurile, seciunea se poate extinde dincolo de sfaritul curent al fiierului. In Linux, lockf() este doar o interfaa peste blocarea fcntl(2). Multe alte sisteme implementeaza lockf() in acest mod, dar reinei ca POSIX.1 lasa nespecificata relaia dintre blocarile lockf() i fcntl(2). O aplicaie portabila ar trebui probabil sa evite amestecarea apelurilor la aceste interfee. Operaiile valide sunt prezentate mai jos: F_LOCK Stabilete o blocare exclusiva pe seciunea specificata a fiierului. Daca aceasta seciune (sau o parte a acesteia) este deja blocata, apelul se blocheaza pana la eliberarea blocarii anterioare. In cazul in care aceasta seciune se suprapune peste o seciune blocata anterior, ambele sunt fuzionate. Blocajele de fiier sunt eliberate imediat ce procesul care deine blocajele inchide un descriptor de fiier pentru acest fiier. Un proces copil nu motenete aceste blocaje. F_TLOCK Acelai lucru ca F_LOCK, dar apelul nu se blocheaza niciodata i returneaza o eroare daca fiierul este deja blocat. F_ULOCK Deblocheaza seciunea indicata din fiier. Acest lucru poate face ca o seciune blocata sa fie imparita in doua seciuni blocate. F_TEST Testeaza blocarea: returneaza 0 daca seciunea specificata este deblocata sau blocata de acest proces; returneaza -1, stabilete errno la EAGAIN (EACCES pe alte sisteme), daca un alt proces deine o blocare. VALOAREA RETURNATA In caz de succes, se returneaza zero. In caz de eroare, se returneaza -1, iar errno este configurata pentru a indica eroarea. ERORI-IEIRE EACCES sau EAGAIN Fiierul este blocat i a fost specificat F_TLOCK sau F_TEST, sau operaiunea este interzisa deoarece fiierul a fost plasat in memorie de un alt proces. EBADF fd nu este un descriptor de fiier deschis; sau cmd este F_LOCK sau F_TLOCK i fd nu este un descriptor de fiier inscriptibil. EDEADLK Comanda a fost F_LOCK i aceasta operaie de blocare ar fi provocat un blocaj. EINTR In timp ce atepta sa obina un blocaj, apelul a fost intrerupt de livrarea unui semnal capturat de un gestionar; a se vedea signal(7). EINVAL A fost specificata o operaie nevalida in cmd. ENOLCK Prea multe blocari de segment deschise, tabelul de blocare este plin. ATRIBUTE Pentru o explicaie a termenilor folosii in aceasta seciune, a se vedea attributes(7). +--------------------------------------+---------------------+---------+ |Interfaa | Atribut | Valoare | +--------------------------------------+---------------------+---------+ |lockf() | Sigurana firelor | MT-Safe | +--------------------------------------+---------------------+---------+ STANDARDE POSIX.1-2008. ISTORIC POSIX.1-2001, SVr4. CONSULTAI I fcntl(2), flock(2) locks.txt i mandatory-locking.txt in directorul sursa al nucleului Linux Documentation/filesystems (pe nucleele mai vechi, aceste fiiere se afla direct sub directorul Documentation, iar mandatory-locking.txt se numete mandatory.txt). 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 lockf(3)