NAME

     mkdir - create a directory


SYNOPSIS

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

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


DESCRIPTION

     mkdir attempts to create a directory named pathname.

     mode specifies the permissions to use. It is modified by the
     process's  umask  in  the  usual way: the permissions of the
     created file are (mode & ~umask).

     The newly created directory will be owned by  the  effective
     uid  of  the  process.  If the directory containing the file
     has the set group id  bit  set,  or  if  the  filesystem  is
     mounted  with  BSD  group  semantics, the new directory will
     inherit the group ownership from its  parent;  otherwise  it
     will be owned by the effective gid of the process.

     If the parent directory has the set group id bit set then so
     will the newly created directory.



RETURN VALUE

     mkdir returns zero on success, or -1 if  an  error  occurred
     (in which case, errno is set appropriately).


ERRORS

     EEXIST  pathname already exists (not necessarily as a direc-
             tory).

     EFAULT  pathname  points  outside  your  accessible  address
             space.

     EACCES  The parent directory does not allow write permission
             to  the  process, or one of the directories in path-
             name did not allow search (execute) permission.

     ENAMETOOLONG
             pathname was too long.

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

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

     ENOMEM  Insufficient kernel memory was available.

     EROFS   pathname refers to a file on a read-only filesystem.

     ELOOP   Too many symbolic links were encountered in  resolv-
             ing pathname.

     ENOSPC  The device containing pathname has no room  for  the
             new directory.

     ENOSPC  The new directory  cannot  be  created  because  the
             user's disk quota is exhausted.


CONFORMING TO

     SVr4, POSIX, BSD, SYSV, X/OPEN.  SVr4  documents  additional
     EIO,  EMULTIHOP  and ENOLINK error conditions; POSIX.1 omits
     ELOOP.

     There are many infelicities in the protocol underlying  NFS.
     Some of these affect mkdir.


SEE ALSO

     read(2), write(2), fcntl(2), unlink(2),  open(2),  mknod(2),
     mount(2), socket(2), socket(2),