mkfifo(3) Library Functions Manual mkfifo(3)
Name
mkfifo - make a FIFO special file
Syntax
#include <sys/types.h>
#include <sys/stat.h>
int mkfifo(path, mode)
char *path;
mode_t mode;
Description
The function creates a new FIFO special file whose name is path. The file permission bits of the new FIFO are initialized from mode,
where the value of mode, is one (or more) of the file permission bits defined in <sys/stat.h>. The mode argument is modified by the
process's file creation mask (see
The FIFO's owner ID is set to the process's effective user ID. The FIFO's group ID is set to the process's effective group ID.
Return Values
Upon successful completion, a value of 0 is returned. Otherwise, a value of -1 is returned and errno is set to indicate the error.
Diagnostics
The function will fail and the FIFO will not be created if:
[EACCES] A component of the path prefix denies search permission.
[EEXIST] The named file exists.
[ENAMETOOLONG] A component of a pathname exceeded 255 characters, or an entire pathname exceeded 1023 characters.
[ENOTDIR] A component of the path prefix is not a directory.
[ENOENT] A component of the path prefix does not exist or the path argument points to an empty string.
[EROFS] The named file resides on a read-only file system.
[EFAULT] Path points outside the process's allocated address space.
[ELOOP] Too many symbolic links were encountered in translating the pathname.
[EIO] An I/O error occurred while making the directory entry.
[ENOSPC] The directory in which the entry for the new FIFO is being placed cannot be extended because there is no space left on the
file system.
[ENOSPC] There are no free inodes on the file system on which the node is being created.
[EDQUOT] The directory in which the entry for the new FIFO is being placed cannot be extended because the user's quota of disk blocks
on the file system containing the directory has been exhausted.
[EDQUOT] The user's quota of inodes on the file system on which the FIFO is being created has been exhausted.
[ESTALE] The file handle given in the argument is invalid. The file referred to by that file handle no longer exists or has been
revoked.
[ETIMEDOUT] A connect request or remote file operation failed because the connected party did not properly respond after a period of
time which is dependent on the communications protocol.
See Also
mknod(1), umask(1)
mkfifo(3)