Provided by: manpages-ro-dev_4.28.0-2_all 

NUME
lockf - aplică, testează sau elimină o blocare POSIX pe un fișier deschis
BIBLIOTECA
Biblioteca C standard (libc, -lc)
SINOPSIS
#include <unistd.h>
int lockf(int fd, int op, off_t len);
Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):
lockf():
_XOPEN_SOURCE >= 500
|| /* glibc >= 2.19: */ _DEFAULT_SOURCE
|| /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
DESCRIERE
Aplică, testează sau elimină un blocaj POSIX pe o secțiune a unui fișier deschis. Fișierul este
specificat prin fd, un descriptor de fișier deschis pentru scriere, acțiunea prin op, iar secțiunea este
formată din pozițiile de octeți pos..pos+len-1 dacă len este pozitiv și pos-len. pos-1 dacă len este
negativ, unde pos este poziția curentă a fișierului, iar dacă len este zero, secțiunea se extinde de la
poziția curentă a fișierului până la infinit, cuprinzând pozițiile prezente și viitoare de sfârșit de
fișier. În toate cazurile, secțiunea se poate extinde dincolo de sfârșitul curent al fișierului.
În Linux, lockf() este doar o interfață peste blocarea fcntl(2). Multe alte sisteme implementează
lockf() în acest mod, dar rețineți că POSIX.1 lasă nespecificată relația dintre blocările lockf() și
fcntl(2). O aplicație portabilă ar trebui probabil să evite amestecarea apelurilor la aceste interfețe.
Operațiile valide sunt prezentate mai jos:
F_LOCK Stabilește o blocare exclusivă pe secțiunea specificată a fișierului. Dacă această secțiune (sau o
parte a acesteia) este deja blocată, apelul se blochează până la eliberarea blocării anterioare.
În cazul în care această secțiune se suprapune peste o secțiune blocată anterior, ambele sunt
fuzionate. Blocajele de fișier sunt eliberate imediat ce procesul care deține blocajele închide un
descriptor de fișier pentru acest fișier. Un proces copil nu moștenește aceste blocaje.
F_TLOCK
Același lucru ca F_LOCK, dar apelul nu se blochează niciodată și returnează o eroare dacă fișierul
este deja blocat.
F_ULOCK
Deblochează secțiunea indicată din fișier. Acest lucru poate face ca o secțiune blocată să fie
împărțită în două secțiuni blocate.
F_TEST Testează blocarea: returnează 0 dacă secțiunea specificată este deblocată sau blocată de acest
proces; returnează -1, stabilește errno la EAGAIN (EACCES pe alte sisteme), dacă un alt proces
deține o blocare.
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 sau EAGAIN
Fișierul este blocat și a fost specificat F_TLOCK sau F_TEST, sau operația este interzisă deoarece
fișierul a fost plasat în memorie de un alt proces.
EBADF fd nu este un descriptor de fișier deschis; sau op este F_LOCK sau F_TLOCK și fd nu este un
descriptor de fișier inscriptibil.
EDEADLK
op (operația) a fost F_LOCK și această operație de blocare ar fi provocat un blocaj.
EINTR În timp ce aștepta să obțină un blocaj, apelul a fost întrerupt de livrarea unui semnal capturat
de un gestionar; a se vedea signal(7).
EINVAL A fost specificată o operație nevalidă în op.
ENOLCK Prea multe blocări de segment deschise, tabelul de blocare este plin.
ATRIBUTE
Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
┌─────────────────────────────────────────────────────────────────────────┬───────────────────┬─────────┐
│ Interfață │ Atribut │ Valoare │
├─────────────────────────────────────────────────────────────────────────┼───────────────────┼─────────┤
│ lockf() │ Siguranța firelor │ MT-Safe │
└─────────────────────────────────────────────────────────────────────────┴───────────────────┴─────────┘
STANDARDE
POSIX.1-2008.
ISTORIC
POSIX.1-2001, SVr4.
CONSULTAȚI ȘI
fcntl(2), flock(2)
locks.txt și mandatory-locking.txt în directorul sursă al nucleului Linux Documentation/filesystems (pe
nucleele mai vechi, aceste fișiere se află direct sub directorul Documentation, iar mandatory-locking.txt
se numește mandatory.txt).
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.
Pagini de manual de Linux 6.9.1 2 mai 2024 lockf(3)