Provided by: manpages-ru-dev_4.27.0-1_all 

НАИМЕНОВАНИЕ
mkfifo, mkfifoat - создают специальный файл очереди FIFO (именованный канал)
БИБЛИОТЕКА
Стандартная библиотека языка C (libc, -lc)
ОБЗОР
#include <sys/types.h>
#include <sys/stat.h>
int mkfifo(const char *pathname, mode_t mode);
#include <fcntl.h> /* определения констант AT_* */
#include <sys/stat.h>
int mkfifoat(int dirfd, const char *pathname, mode_t mode);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
mkfifoat():
Начиная с glibc 2.10:
_POSIX_C_SOURCE >= 200809L
До glibc 2.10:
_ATFILE_SOURCE
ОПИСАНИЕ
mkfifo() makes a FIFO special file with name pathname. mode specifies the FIFO's permissions. It is
modified by the process's umask in the usual way: the permissions of the created file are (mode &
~umask).
Специальный файл FIFO подобен каналу, за исключением того, что он создаётся другим способом. Вызов
mkfifo() вместо безымянного канала взаимодействия создаёт специальный файл FIFO, расположенный в файловой
системе.
После создания специального файла FIFO, любой процесс может открывать его для чтения или записи, как
если бы он открывал обычный файл. Однако прежде чем вы сможете что-либо сделать, его необходимо открыть с
обоих концов, притом одновременно. Открытие FIFO для чтения обычно блокируется, пока какой-нибудь другой
процесс не откроет его для записи, и наоборот. Описание работы со специальными файлами FIFO в
неблокирующем режиме смотрите в fifo(7).
mkfifoat()
Функция mkfifoat() работает также как как mkfifo(), за исключением случаев, описанных здесь.
Если в pathname задан относительный путь, то он считается относительно каталога, на который ссылается
файловый дескриптор dirfd (а не относительно текущего рабочего каталога вызывающего процесса, как это
делается в mkfifo(3)).
Если в pathname задан относительный путь и dirfd равно специальному значению AT_FDCWD, то pathname
рассматривается относительно текущего рабочего каталога вызывающего процесса (как mkfifo(3)).
Если в pathname задан абсолютный путь, то dirfd игнорируется.
See openat(2) for an explanation of the need for mkfifoat().
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
On success mkfifo() and mkfifoat() return 0. On error, -1 is returned and errno is set to indicate the
error.
ОШИБКИ
EACCES Один из каталогов содержащихся в pathname не позволяет выполнить поиск, так как правами запрещено
исполнение.
EBADF (mkfifoat()) pathname is relative but dirfd is neither AT_FDCWD nor a valid file descriptor.
EDQUOT Исчерпана пользовательская квота на дисковые блоки или иноды файловой системы.
EEXIST pathname уже существует. В этом случае pathname может быть символьной ссылкой, повисшей или нет.
ENAMETOOLONG
Если длина полного имени файла (включая путь) pathname больше чем PATH_MAX или длина имени файла
больше чем NAME_MAX. В общем случае в системах, соответствующих стандарту GNU, отсутствует
ограничение на длину полного имени файла, однако некоторые файловые системы могут устанавливать
ограничение на длину отдельного компонента.
ENOENT Один из каталогов в pathname не существует или является повисшей символьной ссылкой.
ENOSPC В каталоге или файловой системе закончились места для новых файлов.
ENOTDIR
Компонент пути, использованный как каталог в pathname, в действительности таковым не является.
ENOTDIR
(mkfifoat()) pathname is a relative pathname and dirfd is a file descriptor referring to a file
other than a directory.
EROFS pathname указывает на файловую систему, доступную только для чтения.
АТРИБУТЫ
Описание терминов данного раздела смотрите в attributes(7).
┌─────────────────────────────────────────────────────────────────────┬──────────────────────┬──────────┐
│ Интерфейс │ Атрибут │ Значение │
├─────────────────────────────────────────────────────────────────────┼──────────────────────┼──────────┤
│ mkfifo(), mkfifoat() │ Безвредность в нитях │ MT-Safe │
└─────────────────────────────────────────────────────────────────────┴──────────────────────┴──────────┘
ВЕРСИИ
It is implemented using mknodat(2).
СТАНДАРТЫ
POSIX.1-2008.
ИСТОРИЯ
mkfifo()
POSIX.1-2001.
mkfifoat()
glibc 2.4. POSIX.1-2008.
СМОТРИТЕ ТАКЖЕ
mkfifo(1), close(2), open(2), read(2), stat(2), umask(2), write(2), fifo(7)
ПЕРЕВОД
Русский перевод этой страницы руководства разработал(и) aereiae <aereiae@gmail.com>, Alexey
<a.chepugov@gmail.com>, Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitriy S. Seregin <dseregin@59.ru>,
Dmitry Bolkhovskikh <d20052005@yandex.ru>, ITriskTI <ITriskTI@gmail.com>, Max Is <ismax799@gmail.com>,
Yuri Kozlov <yuray@komyakino.ru>, Иван Павлов <pavia00@gmail.com>, Малянов Евгений Викторович
<maljanow@outlook.com> и Kirill Rekhov <krekhov.dev@gmail.com>
Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной
лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или
более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.
Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом
разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских
переводчиков.
Справочные страницы Linux 6.9.1 2 мая 2024 г. mkfifo(3)