NAME

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


SYNOPSIS

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

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


DESCRIPTION

     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 anonymous
     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 nor-
     mally  blocks  until  some other process opens the same FIFO
     for writing, and vice versa.


RETURN VALUE

     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).


ERRORS

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

     EEXIST
          pathname already exists.

     ENAMETOOLONG
          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
          file.

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

     EROFS
          pathname refers to a read-only filesystem.


CONFORMING TO

     POSIX.1


SEE ALSO

     mkfifo(1), read(2), write(2), close(2), stat(2), umask(2).