| mkfifo(3) | Library Functions Manual | mkfifo(3) |
mkfifo, mkfifoat - tworzy specjalny plik FIFO (potok nazwany)
Standardowa biblioteka C (libc, -lc)
#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);
mkfifoat():
Od glibc 2.10:
_POSIX_C_SOURCE >= 200809L
Przed glibc 2.10:
_ATFILE_SOURCE
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).
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).
Po pomyślnym zakończeniu mkfifo() i mkfifoat() zwracają zero. Po błędzie zwracane jest -1 ustawiane errno wskazując błąd.
Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).
| Interfejs | Atrybut | Wartość |
| mkfifo(), mkfifoat() | Bezpieczeństwo wątkowe | MT-bezpieczne |
Zaimplementowane za pomocą mknodat(2).
POSIX.1-2008.
mkfifo(1), close(2), open(2), read(2), stat(2), umask(2), write(2), fifo(7)
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.
| 2 maja 2024 r. | Linux man-pages 6.9.1 |