flockfile(3) Library Functions Manual flockfile(3) NUME flockfile, ftrylockfile, funlockfile, funlockfile - blocheaza un FIIER pentru stdio (intrarea/ieirea standard) BIBLIOTECA Biblioteca C standard (libc, -lc) REZUMAT #include void flockfile(FIIER *filehandle); int ftrylockfile(FIIER *filehandle); void funlockfile(FIIER *filehandle); Cerine pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultai feature_test_macros(7)): Toate funciile prezentate mai sus: /* Incepand 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 Funciile stdio sunt sigure pentru fire de execuie. Acest lucru se realizeaza prin atribuirea la fiecare obiect FIIER a unui numar de blocare i (daca numarul de blocare este diferit de zero) a unui fir proprietar. Pentru fiecare apel la biblioteca, aceste funcii ateapta pana cand obiectul FIIER nu mai este blocat de un alt fir de execuie, apoi il blocheaza, efectueaza In/Ie solicitata i deblocheaza din nou obiectul. Nota: aceasta blocare nu are nimic de-a face cu blocarea fiierelor efectuata de funcii precum flock(2) i lockf(3). Toate acestea sunt invizibile pentru programatorul C, dar pot exista doua motive pentru a dori un control mai detaliat. Pe de o parte, poate ca o serie de aciuni de intrare/ieire efectuate de un fir de execuie se potrivesc i nu ar trebui sa fie intrerupte de intrarea/ieirea unui alt fir de execuie. Pe de alta parte, poate ca, pentru o mai mare eficiena, ar trebui evitat blocajul. In acest scop, un fir de execuie poate bloca in mod explicit obiectul FIIER, apoi poate efectua o serie de aciuni de intrare/ieire, dupa care poate fi deblocat. Acest lucru impiedica alte fire sa intervina intre ele. Daca motivul pentru care se procedeaza astfel ar fi acela de a obine o mai mare eficiena, se face In/Ie cu versiunile fara blocare ale funciilor stdio: cu getc_unlocked(3) i putc_unlocked(3) in loc de getc(3) i putc(3). Funcia flockfile() ateapta ca *filehandle sa nu mai fie blocat de un alt fir de execuie, apoi il face pe firul curent proprietar al *filehandle i marete numarul de blocare. Funcia funlockfile() decrementeaza numarul de blocare. Funcia ftrylockfile() este o versiune fara blocare a flockfile(). Aceasta nu face nimic in cazul in care un alt fir de execuie deine *filehandle, iar in caz contrar obine proprietatea i marete numarul de blocare. VALOAREA RETURNATA Funcia ftrylockfile() returneaza zero in caz de succes (blocarea a fost obinuta) i o valoare diferita de zero in caz de eec. ERORI-IEIRE Niciunul. ATRIBUTE Pentru o explicaie a termenilor folosii in aceasta seciune, a se vedea attributes(7). +--------------------------------------+---------------------+---------+ |Interfaa | Atribut | Valoare | +--------------------------------------+---------------------+---------+ |flockfile(), ftrylockfile(), | Sigurana firelor | MT-Safe | |funlockfile() | | | +--------------------------------------+---------------------+---------+ STANDARDE POSIX.1-2008. ISTORIC POSIX.1-2001. Aceste funcii sunt disponibile atunci cand este definita _POSIX_THREAD_SAFE_FUNCTIONS. CONSULTAI I unlocked_stdio(3) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.06 31 octombrie 2023 flockfile(3)