Provided by: manpages-pl-dev_0.7-2_all bug

NAZWA

       flockfile, ftrylockfile, funlockfile - blokowanie strumienia FILE dla stdio

SKŁADNIA

       #include <stdio.h>

       void flockfile(FILE *filehandle);
       int ftrylockfile(FILE *filehandle);
       void funlockfile(FILE *filehandle);

OPIS

        Uwaga! To tłumaczenie może być nieaktualne!

       Powyższe  funkcje  stdio są przystosowane do pracy wielowątkowej.  Uzyskuje się to poprzez
       przypisanie każdemu  z  obiektów  FILE  licznika  blokad  oraz  (dla  niezerowej  wartości
       licznika)  wątku  będącego jego właścicielem.  Przy każdym wywołaniu funkcji bibliotecznej
       funkcje te czekają aż obiekt FILE nie będzie już blokowany przez inny wątek,  a  następnie
       go blokują, wykonują żądane operacje we/wy i odblokowują obiekt ponownie.

       (Uwaga:  blokowanie  to  nie  ma  nic  wspólnego  z blokowaniem plików za pomocą funkcji w
       rodzaju flock(2) i lockf(3).)

       Wszystko to dzieje się w sposób niewidoczny dla programisty C, jednak mogą pojawić się dwa
       powody  wymagające bardziej szczegółowej kontroli.  Z jednej strony, szereg operacji we/wy
       wykonywanych w jednym wątku może stanowić całość, która nie może  zostać  przerwana  przez
       operację  we/wy  innego  wątku. Z drugiej strony, może istnieć potrzeba uniknięcia narzutu
       wywołanego przez pojedyncze blokady w celu uzyskania większej wydajności.

       W takich sytuacjach wątek może jawnie zablokować  obiekt  FILE,  wykonać  szereg  operacji
       we/wy  i  odblokować go. Uniemożliwia to innym wątkom przeszkadzanie w międzyczasie. Jeśli
       powodem założenia blokady ma być osiągnięcie większej wydajności,  wykonuje  się  operacje
       we/wy  za  pomocą  nieblokujących  wersji funkcji stdio: getc_unlocked() i putc_unlocked()
       zamiast getc() i putc().

       Funkcja flockfile() czeka aż *filehandle  nie  będzie  zablokowany  przez  inny  wątek,  a
       następnie czyni bieżący wątek właścicielem *filehandle i zwiększa o jeden licznik blokad.

       Funkcja funlockfile() zminiejsza licznik blokad o jeden.

       Funkcja  ftrylockfile()  jest  nieblokującą wersją flockfile().  Nie robi ona nic gdy inny
       wątek jest właścicielem  *filehandle,  a  w  przeciwnym  przypadku  przejmuje  własność  i
       zwiększa o jeden licznik blokad.

WARTOŚĆ ZWRACANA

       Funkcja  ftrylockfile()  zwraca  zero  w  przypadku  sukcesu (blokada została założona), a
       wartość niezerową w razie niepowodzenia.

BŁĘDY

       Brak.

DOSTĘPNOŚĆ

       Funkcje te są dostępne, gdy zdefiniowane jest _POSIX_THREAD_SAFE_FUNCTIONS.  Znajdują  się
       one w libc począwszy od libc 5.1.1 oraz w glibc począwszy od glibc 2.0.

ZGODNE Z

       POSIX.1

ZOBACZ TAKŻE

       unlocked_stdio(3)

INFORMACJE O TŁUMACZENIU

       Powyższe  tłumaczenie  pochodzi  z nieistniejącego już Projektu Tłumaczenia Manuali i może
       nie być aktualne. W  razie  zauważenia  różnic  między  powyższym  opisem  a  rzeczywistym
       zachowaniem  opisywanego  programu  lub  funkcji,  prosimy  o  zapoznanie się z oryginalną
       (angielską) wersją strony podręcznika za pomocą polecenia:

              man --locale=C 3 flockfile

       Prosimy o pomoc w aktualizacji stron man - więcej informacji  można  znaleźć  pod  adresem
       http://sourceforge.net/projects/manpages-pl/.

                                            2001-10-18                                LOCKFILE(3)