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)
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/.