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 ⟨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⟩.