MKFIFO(3)           Linux Programmer's Manual           MKFIFO(3)

       mkfifo - make a FIFO special file (a named pipe)

       #include <sys/types.h>
       #include <sys/stat.h>

       int mkfifo ( const char *pathname, mode_t mode );

       mkfifo makes a FIFO special file with name pathname.  mode
       specifies the FIFO's permissions. It is  modified  by  the
       process'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 anony-
       mous  communications  channel,  a  FIFO  special  file  is
       entered into the file system by calling mkfifo.

       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.

       The  normal, successful return value from mkfifo is 0.  In
       the case of an error, -1 is returned (in which case, errno
       is set appropriately).

       EACCES One  of  the  directories in pathname did not allow
              search (execute) permission.

       EEXIST pathname already exists.

              Either the total length of pathname is greater than
              PATH_MAX,  or an individual file name component has
              a length greater than NAME_MAX.  In the GNU system,
              there  is  no  imposed  limit  on overall file name
              length, but some file systems may place  limits  on
              the length of a component.

       ENOENT A directory component in pathname does not exist or
              is a dangling symbolic link.

       ENOSPC The directory or filesystem has no room for the new

              A component used as a directory in pathname is not,
              in fact, a directory.

       EROFS  pathname refers to a read-only filesystem.


       mkfifo(1), read(2), write(2), open(2), close(2),  stat(2),

Linux 1.2.13             3 September 1995                       1