Provided by: manpages-pl_4.26.0-1_all 

NAZWA
fifo - plik specjalny FIFO, potok nazwany, łącze nazwane
OPIS
Plik specjalny FIFO (ang. first-in first-out – pierwszy na wejściu, pierwszy na wyjściu; zwany również
potokiem nazwanym lub łączem nazwanym) jest podobny do potoku, lecz jest dostępny jako część systemu
plików. Może go otworzyć do odczytu i zapisu wiele procesów. Gdy procesy wymieniają dane przez FIFO,
jądro przekazuje wszystkie dane wewnętrznie, bez zapisywania do systemu plików. Z tego powodu specjalny
plik FIFO nie ma zawartości w systemie plików; wpis systemu plików służy jedynie jako punkt odniesienia,
dzięki któremu procesy mogą uzyskać dostęp do potoku za pomocą nazwy w systemie plików.
Jądro utrzymuje dokładnie jeden obiekt potoku dla każdego pliku specjalnego FIFO, który jest otwarty
przez choć jeden proces. FIFO musi być otwarty na obu końcach (do odczytu i do zapisu), zanim dane mogą
być przekazane. Zwykle otwarcie FIFO blokuje, dopóki nie zostanie otwarty również drugi koniec.
Proces może otworzyć FIFO w trybie nieblokującym. W takim przypadku otwarcie tylko do odczytu powodzi się
nawet wówczas, gdy nikt nie otworzył jeszcze końca do zapisu, natomiast otwarcie tylko do zapisu zawodzi
z błędem ENXIO (brak takiego urządzenia lub adresu), chyba że drugi koniec został już otworzony.
W Linuksie, otwarcie FIFO do odczytu i zapisu powiedzie się zarówno w trybie blokującym, jak i
nieblokującym. POSIX nie definiuje tego zachowania. Można to wykorzystać do otwarcia FIFO do zapisu, gdy
nie są dostępni odczytujący. Proces używający obu końców połączenia do komunikacji ze sobą, powinien
wykazywać się dużą ostrożnością, aby uniknąć zakleszczeń.
UWAGI
Szczegóły semantyki wejścia/wyjścia FIFO opisano w podręczniku pipe(7).
Gdy proces spróbuje zapisać do FIFO, które nie jest otwarte do odczytu na drugim końcu, otrzyma sygnał
SIGPIPE.
Pliki specjalne FIFO można tworzyć za pomocą mkfifo(3) i są wskazywane przez polecenie ls -l jako
posiadające typ pliku 'p'.
ZOBACZ TAKŻE
mkfifo(1), open(2), pipe(2), sigaction(2), signal(2), socketpair(2), mkfifo(3), pipe(7)
TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Michał Kułach <michal.kulach@gmail.com>
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać
zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ
ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-
list@lists.sourceforge.net.
Linux man-pages 6.9.1 2 maja 2024 r. fifo(7)