Provided by: manpages-ro-dev_4.21.0-2_all bug

NUME

       lockf - aplică, testează sau elimină o blocare POSIX pe un fișier deschis

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

REZUMAT

       #include <unistd.h>

       int lockf(int fd, int cmd, 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 cmd, 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

       EACCES sau EAGAIN
              Fișierul  este  blocat  și  a  fost  specificat F_TLOCK sau F_TEST, sau operațiunea 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 cmd este F_LOCK sau  F_TLOCK  și  fd  nu  este  un
              descriptor de fișier inscriptibil.

       EDEADLK
              Comanda 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 cmd.

       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țăAtributValoare │
       ├─────────────────────────────────────────────────────────────────────────┼───────────────────┼─────────┤
       │ lockf()                                                                 │ Siguranța firelor │ MT-Safe │
       └─────────────────────────────────────────────────────────────────────────┴───────────────────┴─────────┘

STANDARDE

       POSIX.1-2001, POSIX.1-2008, 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   creată   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.03                  5 februarie 2023                                        lockf(3)