Provided by: manpages-pl-dev_20060617-3_all bug

NAZWA

       flockfile,  ftrylockfile,  funlockfile - blokowanie strumienia FILE dla
       stdio

SK/LADNIA

       #include <stdio.h>

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

OPIS

       Powysze funkcje stdio s przystosowane do pracy wielowtkowej.   Uzyskuje
       si  to  poprzez przypisanie kademu z obiektow FILE licznika blokad oraz
       (dla niezerowej wartoci licznika) wtku bdcego jego  wlacicielem.   Przy
       kadym  wywolaniu  funkcji bibliotecznej funkcje te czekaj a obiekt FILE
       nie bdzie ju blokowany przez inny wtek, a nastpnie go  blokuj,  wykonuj
       dane operacje we/wy i odblokowuj obiekt ponownie.

       (Uwaga:  blokowanie  to  nie  ma  nic wspolnego z blokowaniem plikow za
       pomoc funkcji w rodzaju flock(2) i lockf(3).)

       Wszystko to dzieje si w sposob niewidoczny dla  programisty  C,  jednak
       mog  pojawi  si dwa powody wymagajce bardziej szczegolowej kontroli.  Z
       jednej strony, szereg operacji we/wy wykonywanych  w  jednym  wtku  moe
       stanowi  calo, ktora nie moe zosta przerwana przez operacj we/wy innego
       wtku.  Z  drugiej  strony,  moe  istnie  potrzeba   uniknicia   narzutu
       wywolanego przez pojedyncze blokady w celu uzyskania wikszej wydajnoci.

       W  takich  sytuacjach  wtek  moe  jawnie  zablokowa obiekt FILE, wykona
       szereg operacji we/wy  i  odblokowa  go.  Uniemoliwia  to  innym  wtkom
       przeszkadzanie  w  midzyczasie.  Jeli  powodem  zaloenia  blokady ma by
       osignicie wikszej  wydajnoci,  wykonuje  si  operacje  we/wy  za  pomoc
       nieblokujcych  wersji  funkcji stdio: getc_unlocked() i putc_unlocked()
       zamiast getc() i putc().

       Funkcja flockfile() czeka a *filehandle  nie  bdzie  zablokowany  przez
       inny  wtek,  a  nastpnie  czyni  biecy  wtek  wlacicielem *filehandle i
       zwiksza o jeden licznik blokad.

       Funkcja funlockfile() zminiejsza licznik blokad o jeden.

       Funkcja ftrylockfile() jest nieblokujc wersj flockfile().  Nie robi ona
       nic  gdy  inny  wtek  jest  wlacicielem  *filehandle,  a  w  przeciwnym
       przypadku przejmuje wlasno i zwiksza o jeden licznik blokad.

WARTO ZWRACANA

       Funkcja ftrylockfile() zwraca zero w przypadku sukcesu (blokada zostala
       zaloona), a warto niezerow w razie niepowodzenia.

B/LDY

       Brak.

DOSTPNO

       Funkcje      te      s      dostpne,      gdy     zdefiniowane     jest
       _POSIX_THREAD_SAFE_FUNCTIONS.  Znajduj si one w libc poczwszy  od  libc
       5.1.1 oraz w glibc poczwszy od glibc 2.0.

ZGODNE Z

       POSIX.1

ZOBACZ TAKE

       unlocked_stdio(3)

INFORMACJE O T/LUMACZENIU

       Powysze  tlumaczenie  pochodzi z nieistniejcego ju Projektu Tlumaczenia
       Manuali i moe nie by aktualne. W razie zauwaenia ronic  midzy  powyszym
       opisem  a  rzeczywistym  zachowaniem  opisywanego programu lub funkcji,
       prosimy o zapoznanie si z oryginaln (angielsk) wersj strony podrcznika.

                                  2001-10-18                       LOCKFILE(3)