mkfifo
- mkfifo – narzędzie wiersza poleceń do tworzenia nazwanych potoków (FIFO – First In, First Out), które pozwalają na wymianę danych między procesami poprzez system plików.
- Główne zastosowania: komunikacja międzyprocesowa (IPC), przesyłanie strumieni danych między programami, buforowanie danych.
- Dostępność: standardowo we wszystkich dystrybucjach Linux, Unix, BSD i macOS; część standardu POSIX.
Składnia
Dział zatytułowany „Składnia”mkfifo [opcje] nazwa_fifo
- Wariant wywołania: tworzenie jednego lub wielu potoków nazwanych w danym katalogu.
- Obsługuje standardowe przełączniki do ustawiania uprawnień.
Parametry
Dział zatytułowany „Parametry”Parametr | Opis |
---|---|
-m tryb | Ustaw tryb dostępu (uprawnienia) w formacie ósemkowym lub symbolicznym (np. -m 644 , -m u=rw,g=r ). |
--help | Wyświetl pomoc i zakończ. |
--version | Wyświetl wersję programu i zakończ. |
Przykłady użycia
Dział zatytułowany „Przykłady użycia”# 1) Tworzenie prostego potoku FIFOtouch /tmp/potoki # opcjonalnie katalog roboczymkfifo /tmp/moj_fifo
# 2) Tworzenie potoku z określonymi uprawnieniamimkfifo -m 600 /tmp/sekret_fifo
# 3) Użycie FIFO do komunikacji między procesamiecho "Hello" > /tmp/moj_fifo &cat /tmp/moj_fifo
# 4) Tworzenie wielu potoków na razmkfifo fifo1 fifo2 fifo3
- FIFO zachowuje się jak plik specjalny – nie przechowuje danych na dysku, lecz buforuje je w pamięci jądra.
- Operacje odczytu/zapisu blokują się, dopóki drugi koniec potoku nie zostanie otwarty.
- Uprawnienia kontrolują, kto może czytać/zapisywać do potoku.
- Potoki FIFO mogą być używane także w skryptach jako kanały komunikacji.
Najczęściej spotykane błędy i jak je naprawić
Dział zatytułowany „Najczęściej spotykane błędy i jak je naprawić”Błąd / Komunikat | Przyczyna | Rozwiązanie |
---|---|---|
File exists | Potok o tej nazwie już istnieje. | Usuń plik (rm ) lub użyj innej nazwy. |
Permission denied | Brak uprawnień do utworzenia w katalogu. | Zmień katalog lub użyj sudo . |
Invalid mode | Nieprawidłowy format trybu w opcji -m . | Sprawdź składnię (ósemkowa lub symboliczna). |
Zawieszenie procesu przy czytaniu/zapisie | Brak procesu po drugiej stronie potoku. | Uruchom procesy w odpowiedniej kolejności lub w tle. |
Linki i źródła
Dział zatytułowany „Linki i źródła”- man mkfifo – oficjalna dokumentacja.
- POSIX mkfifo – standard POSIX.
- Linux IPC Guide – przewodnik po komunikacji międzyprocesowej.