Section (1) mkfifo
mkfifo — make FIFOs (named pipes)
Create named pipes (FIFOs) with the given NAMEs.
Mandatory arguments to long options are mandatory for short options too.
set file permission bits to MODE, not a=rw − umask
set the SELinux security context to default type
−Z, or if CTX is specified then set the SELinux or SMACK security context to CTX
display this help and exit
output version information and exit
GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Report any translation bugs to <https://translationproject.org/team/>
Full documentation <https://www.gnu.org/software/coreutils/mkfifo>
or available locally via: info _zsingle_quotesz_(coreutils) mkfifo invocation_zsingle_quotesz_
Copyright © 2019 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
Section (3) mkfifo
mkfifo, mkfifoat — make a FIFO special file (a named pipe)
#include <sys/types.h> #include <sys/stat.h>
||const char *pathname,|
#include <fcntl.h> /* Definition of AT_* constants */ #include <sys/stat.h>
|const char *pathname,|
mkfifo() makes a FIFO
special file with name
mode specifies the FIFO_zsingle_quotesz_s
permissions. It is modified by the process_zsingle_quotesz_s
umask in the usual way: the permissions of
the created file are
mode & ~umask).
A FIFO special file is similar to a pipe, except that it
is created in a different way. Instead of being an anonymous
communications channel, a FIFO special file is entered into
the filesystem by calling
Once you have created a FIFO special file in this way, any process can open it for reading or writing, in the same way as an ordinary file. However, it has to be open at both ends simultaneously before you can proceed to do any input or output operations on it. Opening a FIFO for reading normally blocks until some other process opens the same FIFO for writing, and vice versa. See fifo(7) for nonblocking handling of FIFO special files.
operates in exactly the same way as
mkfifo(), except for the differences
If the pathname given in
pathname is relative, then it
is interpreted relative to the directory referred to by the
dirfd (rather than relative
to the current working directory of the calling process, as
is done by
mkfifo() for a
is the special value
pathname is interpreted
relative to the current working directory of the calling
dirfd is ignored.
mkfifoat() return 0. In the
case of an error, −1 is returned (in which case,
errno is set appropriately).
One of the directories in
pathnamedid not allow search (execute) permission.
The user_zsingle_quotesz_s quota of disk blocks or inodes on the filesystem has been exhausted.
pathnamealready exists. This includes the case where
pathnameis a symbolic link, dangling or not.
Either the total length of
pathnameis greater than
PATH_MAX, or an individual filename component has a length greater than
NAME_MAX. In the GNU system, there is no imposed limit on overall filename length, but some filesystems may place limits on the length of a component.
A directory component in
pathnamedoes not exist or is a dangling symbolic link.
The directory or filesystem has no room for the new file.
A component used as a directory in
pathnameis not, in fact, a directory.
pathnamerefers to a read-only filesystem.
The following additional errors can occur for
dirfdis not a valid file descriptor.
pathnameis a relative path and
dirfdis a file descriptor referring to a file other than a directory.
mkfifoat() was added to
glibc in version 2.4. It is implemented using mknodat(2), available on
Linux since kernel 2.6.16.
For an explanation of the terms used in this section, see attributes(7).
This page is part of release 4.16 of the Linux
man-pages project. A
description of the project, information about reporting bugs,
and the latest version of this page, can be found at
This manpage is Copyright (C) 1995 James R. Van Zandt <jrvvanzandt.mv.com>
and Copyright (C) 2006, 2014 Michael Kerrisk
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
Since the Linux kernel and libraries are constantly changing, this
manual page may be incorrect or out-of-date. The author(s) assume no
responsibility for errors or omissions, or for damages resulting from
the use of the information contained herein. The author(s) may not
have taken the same level of care in the production of this manual,
which is licensed free of charge, as they might when working
Formatted or processed versions of this manual, if unaccompanied by
the source, must acknowledge the copyright and authors of this work.
changed section from 2 to 3, aeb, 950919