fifo(7) Miscellaneous Information Manual fifo(7) NAZWA fifo - plik specjalny FIFO, potok nazwany, lacze nazwane OPIS Plik specjalny FIFO (ang. first-in first-out - pierwszy na wejsciu, pierwszy na wyjsciu; zwany rowniez potokiem nazwanym lub laczem nazwanym) jest podobny do potoku, lecz jest dostepny jako czesc systemu plikow. Moze go otworzyc do odczytu i zapisu wiele procesow. Gdy procesy wymieniaja dane przez FIFO, jadro przekazuje wszystkie dane wewnetrznie, bez zapisywania do systemu plikow. Z tego powodu specjalny plik FIFO nie ma zawartosci w systemie plikow; wpis systemu plikow sluzy jedynie jako punkt odniesienia, dzieki ktoremu procesy moga uzyskac dostep do potoku za pomoca nazwy w systemie plikow. Jadro utrzymuje dokladnie jeden obiekt potoku dla kazdego pliku specjalnego FIFO, ktory jest otwarty przez choc jeden proces. FIFO musi byc otwarty na obu koncach (do odczytu i do zapisu), zanim dane moga byc przekazane. Zwykle otwarcie FIFO blokuje, dopoki nie zostanie otwarty rowniez drugi koniec. Proces moze otworzyc FIFO w trybie nieblokujacym. W takim przypadku otwarcie tylko do odczytu powodzi sie nawet wowczas, gdy nikt nie otworzyl jeszcze konca do zapisu, natomiast otwarcie tylko do zapisu zawodzi z bledem ENXIO (brak takiego urzadzenia lub adresu), chyba ze drugi koniec zostal juz otworzony. W Linuksie, otwarcie FIFO do odczytu i zapisu powiedzie sie zarowno w trybie blokujacym, jak i nieblokujacym. POSIX nie definiuje tego zachowania. Mozna to wykorzystac do otwarcia FIFO do zapisu, gdy nie sa dostepni odczytujacy. Proces uzywajacy obu koncow polaczenia do komunikacji ze soba, powinien wykazywac sie duza ostroznoscia, aby uniknac zakleszczen. UWAGI Szczegoly semantyki wejscia/wyjscia FIFO opisano w podreczniku pipe(7). Gdy proces sprobuje zapisac do FIFO, ktore nie jest otwarte do odczytu na drugim koncu, otrzyma sygnal SIGPIPE. Pliki specjalne FIFO mozna tworzyc za pomoca mkfifo(3) i sa wskazywane przez polecenie ls -l jako posiadajace typ pliku 'p'. ZOBACZ TAKZE mkfifo(1), open(2), pipe(2), sigaction(2), signal(2), socketpair(2), mkfifo(3), pipe(7) TLUMACZENIE Autorami polskiego tlumaczenia niniejszej strony podrecznika sa: Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . Linux man-pages 6.8 2 maja 2024 r. fifo(7)