mkfifo() — make a FIFO file
int mkfifo(char *path, mode_t mode);
creates a new FIFO
(first-in-first-out) file, at the path name to which
The file permission bits of the new file are initialized from the
argument, as modified by the process's file creation mask:
for each bit set in the process's file mode creation mask,
the corresponding bit in the new file's mode is cleared (see
other than the file permission bits are ignored.
The FIFO owner ID
is set to the process's effective-user-ID.
The FIFO group ID
is set to the group ID
of the parent directory if the set-group-ID
bit is set on that directory.
Otherwise, the FIFO group ID
is set to the process's effective group ID.
For details of the I/O behavior of pipes see
The following symbolic constants are defined in the
header, and should be used to construct the value of the
The value passed should be the bitwise inclusive
OR of the desired permissions:
Read by owner.
Write by owner.
Read by group.
Write by group.
Read by other users.
Write by other users.
returns 0 upon successful completion.
Otherwise, it returns -1, no FIFO is created, and
is set to indicate the error.
fails and the new file is not created
if any of the following conditions are encountered:
A component of the path prefix denies search permission.
The named file already exists.
argument points outside the process's allocated address space.
The reliable detection of this error is implementation dependent.
Too many symbolic links encountered in translating the path name.
The length of the specified path name exceeds
bytes, or the length of a component of the path name exceeds
is in effect.
A component of the path prefix does not exist.
argument is null.
Not enough space on the file system.
A component of the path prefix is not a directory.
The directory in which the file is being created
is located in a read-only file system.
was developed by HP.
mkfifo(): AES, SVID3, XPG3, XPG4, FIPS 151-2, POSIX.1