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

NUME
flockfile, ftrylockfile, funlockfile, funlockfile - blochează un FIȘIER pentru stdio (intrarea/ieșirea
standard)
BIBLIOTECA
Biblioteca C standard (libc, -lc)
REZUMAT
#include <stdio.h>
void flockfile(FIȘIER *filehandle);
int ftrylockfile(FIȘIER *filehandle);
void funlockfile(FIȘIER *filehandle);
Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):
Toate funcțiile prezentate mai sus:
/* Începând cu glibc 2.24: */ _POSIX_C_SOURCE >= 199309L
|| /* Versiunile de glibc <= 2.23: */ _POSIX_C_SOURCE
|| /* Versiunile de glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
DESCRIERE
Funcțiile stdio sunt sigure pentru fire de execuție. Acest lucru se realizează prin atribuirea la
fiecare obiect FIȘIER a unui număr de blocare și (dacă numărul de blocare este diferit de zero) a unui
fir proprietar. Pentru fiecare apel la bibliotecă, aceste funcții așteaptă până când obiectul FIȘIER nu
mai este blocat de un alt fir de execuție, apoi îl blochează, efectuează In/Ieș solicitată și deblochează
din nou obiectul.
Notă: această blocare nu are nimic de-a face cu blocarea fișierelor efectuată de funcții precum flock(2)
și lockf(3).
Toate acestea sunt invizibile pentru programatorul C, dar pot exista două motive pentru a dori un control
mai detaliat. Pe de o parte, poate că o serie de acțiuni de intrare/ieșire efectuate de un fir de
execuție se potrivesc și nu ar trebui să fie întrerupte de intrarea/ieșirea unui alt fir de execuție. Pe
de altă parte, poate că, pentru o mai mare eficiență, ar trebui evitat blocajul.
În acest scop, un fir de execuție poate bloca în mod explicit obiectul FIȘIER, apoi poate efectua o serie
de acțiuni de intrare/ieșire, după care poate fi deblocat. Acest lucru împiedică alte fire să intervină
între ele. Dacă motivul pentru care se procedează astfel ar fi acela de a obține o mai mare eficiență,
se face In/Ieș cu versiunile fără blocare ale funcțiilor stdio: cu getc_unlocked(3) și putc_unlocked(3)
în loc de getc(3) și putc(3).
Funcția flockfile() așteaptă ca *filehandle să nu mai fie blocat de un alt fir de execuție, apoi îl face
pe firul curent proprietar al *filehandle și mărește numărul de blocare.
Funcția funlockfile() decrementează numărul de blocare.
Funcția ftrylockfile() este o versiune fără blocare a flockfile(). Aceasta nu face nimic în cazul în
care un alt fir de execuție deține *filehandle, iar în caz contrar obține proprietatea și mărește numărul
de blocare.
VALOAREA RETURNATĂ
Funcția ftrylockfile() returnează zero în caz de succes (blocarea a fost obținută) și o valoare diferită
de zero în caz de eșec.
ERORI
Niciunul.
ATRIBUTE
Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
┌─────────────────────────────────────────────────────────────────────────┬───────────────────┬─────────┐
│ Interfață │ Atribut │ Valoare │
├─────────────────────────────────────────────────────────────────────────┼───────────────────┼─────────┤
│ flockfile(), ftrylockfile(), funlockfile() │ Siguranța firelor │ MT-Safe │
└─────────────────────────────────────────────────────────────────────────┴───────────────────┴─────────┘
STANDARDE
POSIX.1-2001, POSIX.1-2008.
Aceste funcții sunt disponibile atunci când este definită _POSIX_THREAD_SAFE_FUNCTIONS.
CONSULTAȚI ȘI
unlocked_stdio(3)
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 flockfile(3)