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  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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⟩.