mkdir - create a directory


SYNOPSIS

       #include <sys/stat.h>
       #include <sys/types.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

       EPERM  The filesystem containing pathname does not support
              the creation of directories.

       EEXIST pathname  already  exists  (not  necessarily  as  a
              directory).  This includes the case where  pathname
              is a symbolic link, dangling or not.

       EFAULT pathname  points  outside  your  accessible address
              space.

       EACCES The parent directory does not allow  write  permis­
              sion  to  the process, or one of the directories in
              pathname 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

       ENOMEM Insufficient kernel memory was available.

       EROFS  pathname  refers  to a file on a read-only filesys­
              tem.

       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

       mkdir(1), chmod(2), mknod(2), mount(2), rmdir(2), stat(2),
       umask(2), unlink(2)