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)