NAME
mkfifo() — make a FIFO file
SYNOPSIS
#include <sys/stat.h>
int mkfifo(char *path, mode_t mode);
DESCRIPTION
mkfifo()
creates a new FIFO
(first-in-first-out) file, at the path name to which
path
points.
The file permission bits of the new file are initialized from the
mode
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
umask(2)).
Bits in
mode
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
read(2)
and
write(2).
The following symbolic constants are defined in the
<sys/stat.h>
header, and should be used to construct the value of the
mode
argument.
The value passed should be the bitwise inclusive
OR of the desired permissions:
- S_IRUSR
Read by owner.
- S_IWUSR
Write by owner.
- S_IRGRP
Read by group.
- S_IWGRP
Write by group.
- S_IROTH
Read by other users.
- S_IWOTH
Write by other users.
RETURN VALUE
mkfifo()
returns 0 upon successful completion.
Otherwise, it returns -1, no FIFO is created, and
errno
is set to indicate the error.
ERRORS
mkfifo()
fails and the new file is not created
if any of the following conditions are encountered:
- EACCES
A component of the path prefix denies search permission.
- EEXIST
The named file already exists.
- EFAULT
The
path
argument points outside the process's allocated address space.
The reliable detection of this error is implementation dependent.
- ELOOP
Too many symbolic links encountered in translating the path name.
- ENAMETOOLONG
The length of the specified path name exceeds
PATH_MAX
bytes, or the length of a component of the path name exceeds
NAME_MAX
bytes while
_POSIX_NO_TRUNC
is in effect.
- ENOENT
A component of the path prefix does not exist.
- ENOENT
The
path
argument is null.
- ENOSPC
Not enough space on the file system.
- ENOTDIR
A component of the path prefix is not a directory.
- EROFS
The directory in which the file is being created
is located in a read-only file system.
AUTHOR
mkfifo()
was developed by HP.
STANDARDS CONFORMANCE
mkfifo(): AES, SVID3, XPG3, XPG4, FIPS 151-2, POSIX.1