Provided by:
manpages-pl-dev_20060617-3_all 
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)