Provided by: manpages-pl-dev_4.27.0-1_all bug

NAZWA

       mkfifo, mkfifoat - tworzy specjalny plik FIFO (potok nazwany)

BIBLIOTEKA

       Standardowa biblioteka C (libc, -lc)

SKŁADNIA

       #include <sys/types.h>
       #include <sys/stat.h>

       int mkfifo(const char *pathname, mode_t mode);

       #include <fcntl.h>           /* Definicja stałych AT_* */
       #include <sys/stat.h>

       int mkfifoat(int dirfd, const char *pathname, mode_t mode);

   Wymagane ustawienia makr biblioteki glibc (patrz feature_test_macros(7)):

       mkfifoat():
           Od glibc 2.10:
               _POSIX_C_SOURCE >= 200809L
           Przed glibc 2.10:
               _ATFILE_SOURCE

OPIS

       mkfifo() tworzy specjalny plik FIFO o nazwie pathname. mode określa uprawnienia FIFO. Są one modyfikowane
       przez umask procesu, w standardowy sposób: uprawnieniami tworzonego pliku będą (mode & ~umask).

       Specjalny  plik  FIFO  jest  podobny do potoku, z tą różnicą, że jest tworzony w inny sposób. Zamiast być
       anonimowym kanałem komunikacji, specjalny plik FIFO pojawia się w systemie plików po wywołaniu mkfifo().

       Po utworzeniu specjalnego pliku FIFO w ten sposób, dowolny proces może go otworzyć do odczytu lub zapisu,
       w ten sam sposób, jak zwykły plik. Jednak musi być otwarty na obu końcach równocześnie, aby dało  się  na
       nim  przeprowadzać  operacje  wejścia lub wyjścia. Otwarcie FIFO do odczytu zwykle blokuje do momentu, aż
       jakiś inny proces nie otworzy tego samego  FIFO  do  zapisu  i  na  odwrót.  Opis  nieblokującej  obsługi
       specjalnych plików FIFO zawarto w fifo(7).

   mkfifoat()
       Wywołanie  systemowe  mkfifoat()  operuje  w  dokładnie  taki sam sposób jak mkfifo(), z wyjątkiem różnic
       opisanych tutaj.

       Jeśli ścieżka podana w pathname jest względna, jest  to  interpretowane  w  odniesieniu  do  katalogu  do
       którego  odnosi się deskryptor pliku dirfd (zamiast w odniesieniu do bieżącego katalogu roboczego procesu
       wywołującego, jak w stosunku do ścieżek względnych robi to mkfifo()).

       Jeśli pathname jest względna a dirfd ma wartość specjalną AT_FDCWD, to  pathname  jest  interpretowana  w
       odniesieniu do bieżącego katalogu roboczego procesu wywołującego (jak mkfifo()).

       Jeśli ścieżka pathname jest bezwzględna, to dirfd jest ignorowane.

       Więcej informacji o potrzebie wprowadzenia mkfifoat() można znaleźć w podręczniku openat(2).

WARTOŚĆ ZWRACANA

       Po pomyślnym zakończeniu mkfifo() i mkfifoat() zwracają zero. Po błędzie zwracane jest -1 ustawiane errno
       wskazując błąd.

BŁĘDY

       EACCES Jeden z katalogów w ścieżce pathname nie zezwala na uprawnienie przeszukania (wykonania).

       EBADF  (mkfifoat())   pathname  jest  względna,  lecz  dirfd  nie  jest  ani  AT_FDCWD,  ani  prawidłowym
              deskryptorem pliku.

       EDQUOT Wyczerpano przydział bloków dysku lub i-węzłów użytkownika w systemie plików.

       EEXIST pathname już  istnieje.  Obejmuje  to  przypadek,  gdy  pathname  jest  dowiązaniem  symbolicznym,
              prawidłowym lub wiszącym.

       ENAMETOOLONG
              Całkowita  długość  pathname  jest  większa  od PATH_MAX albo jakaś pojedyncza składowa ścieżki ma
              długość większą od NAME_MAX. W systemie GNU nie ma narzuconego limitu na  długość  całej  ścieżki,
              ale niektóre systemy plików mogą stosować limity dotyczące składowej ścieżki.

       ENOENT Składowa  pathname,  która  powinna  być  katalogiem  nie  istnieje  lub jest wiszącym dowiązaniem
              symbolicznym.

       ENOSPC W katalogu lub systemie plików brak miejsca na nowy plik.

       ENOTDIR
              Składnik pathname, który powinien być katalogiem, w rzeczywistości katalogiem nie jest.

       ENOTDIR
              (mkfifoat())  pathname jest ścieżką względną a dirfd jest deskryptorem  pliku  odnoszącym  się  do
              pliku zamiast do katalogu.

       EROFS  pathname odnosi się do systemu plików tylko do odczytu.

ATRYBUTY

       Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).
       ┌──────────────────────────────────────────────────────────────┬────────────────────────┬───────────────┐
       │ InterfejsAtrybutWartość       │
       ├──────────────────────────────────────────────────────────────┼────────────────────────┼───────────────┤
       │ mkfifo(), mkfifoat()                                         │ Bezpieczeństwo wątkowe │ MT-bezpieczne │
       └──────────────────────────────────────────────────────────────┴────────────────────────┴───────────────┘

WERSJE

       Zaimplementowane za pomocą mknodat(2).

STANDARDY

       POSIX.1-2008.

HISTORIA

       mkfifo()
              POSIX.1-2001.

       mkfifoat()
              glibc 2.4.  POSIX.1-2008.

ZOBACZ TAKŻE

       mkfifo(1), close(2), open(2), read(2), stat(2), umask(2), write(2), fifo(7)

TŁUMACZENIE

       Tłumaczenie niniejszej strony podręcznika: 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.                                        mkfifo(3)