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

НАИМЕНОВАНИЕ

       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)