mkfifo.3c (2010 09)
m
mkfifo(3C) mkfifo(3C)
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 per-
mission bits of the new file are initialized from the mode argument, as modified by the process’s file crea-
tion 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 con-
struct 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 reli-
able 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.
SEE ALSO
chmod(2), mknod(2), pipe(2), stat(2), umask(2), mknod(5), stat(5), thread_safety(5), types(5).
HP-UX 11i Version 3: September 2010 − 1 − Hewlett-Packard Company 1