mkdir - Creates a directory
int mkdir (
const char *path,
mode_t mode );
Interfaces documented on this reference page conform to industry standards
Refer to the standards(5) reference page for more information about indus-
try standards and associated tags.
path Specifies the name of the new directory.
[Tru64 UNIX] If NFS is installed on your system, this path can
cross into another node. In this case, the new directory is
created at that node. If the final component of the path parame-
ter refers to a symbolic link, the link is traversed and pathname
mode Specifies the mask for the read, write, and execute (RWX) flags
for owner, group, and others.
The mkdir() function creates a new directory with the following attributes:
+ The owner ID is set to the process's effective user ID.
+ The group ID is set to the group ID of its parent directory.
[Tru64 UNIX] However, if the sys_v_mode tunable is set, then the
group ID of the file is set to the effective group ID of the process.
With exception, if the S_ISGID bit of the parent directory is set, the
group ID of the file is set to the group ID of the parent directory
and its S_ISGID bit is set.
If the group ID of the new file does not match the effective group of
the process or one of the supplementary group IDs of the process, the
S_ISGID bit of the new file is cleared.
+ Permission and attribute bits are set according to the value of the
mode parameter modified by the process's file creation mask (see the
umask() function). This parameter is constructed by logically ORing
values described in the sys/mode.h header file.
+ The new directory is empty, except for . (dot) and .. (dot-dot).
To execute the mkdir() function, a process must have search permission to
get to the parent directory of the path parameter and write permission in
the parent directory of the path parameter with respect to all of the
system's configured access control policies.
Upon successful completion, the mkdir() function marks the st_atime,
st_ctime, and st_mtime fields of the directory for update, and marks the
st_ctime and st_mtime fields of the new directory's parent directory for
Upon successful completion, the mkdir() function returns a value of 0
(zero). If the mkdir() function fails, a value of -1 is returned, and errno
is set to indicate the error.
If the mkdir() function fails, the directory is not created and errno may
be set to one of the following values:
[EACCES] Creating the requested directory requires writing in a directory
with a mode that denies write permission, or search permission is
denied on the parent directory of the directory to be created.
The process does not have write access to the parent directory
with respect to one of the system's access policies.
[EDQUOT] The directory in which the entry for the new link is being placed
cannot be extended because the user's quota of disk blocks or i-
nodes on the file system containing the directory is exhausted.
[EEXIST] The named file already exists.
[EFAULT] The path parameter is an invalid address.
[EINVAL] The owner or group ID is not a value that is supported by this
[EIO] A physical I/O error has occurred.
[ELOOP] Too many links were encountered in translating path.
[EMLINK] The link count of the parent directory would exceed LINK_MAX.
The length of the path parameter exceeds PATH_MAX or a pathname
component is longer than NAME_MAX.
[ENOENT] A component of the path parameter does not exist or points to an
[ENOMEM] Unable to allocate a directory buffer.
[ENOSPC] The file system does not contain enough space to hold the con-
tents of the new directory or to extend the parent directory of
the new directory.
[ENOTDIR] A component of the path prefix is not a directory.
[EROFS] The named file resides on a read-only file system.
[Tru64 UNIX] For NFS file access, if the mkdir() function fails, errno may
also be set to one of the following values:
[ENFILE] Indicates either that the system file table is full, or that
there are too many files currently open in the system.
[ESTALE] Indicates a stale NFS file handle. A client cannot make a direc-
tory because the server has unmounted or unexported the remote
Commands: chmod(1), mkdir(1), mknod(8)
Functions: chmod(2), mknod(2), rmdir(2), umask(2)