MKDIR(2) — SYSTEM CALLS
NAME
mkdir − make a directory file
SYNOPSIS
int mkdir(path, mode)
char ∗path;
int mode;
DESCRIPTION
mkdir() creates a new directory file with name path. The mode of the new file is initialized from mode.
The low-order 9 bits of mode are modified such that all bits set in the process’s file mode creation mask are cleared (see umask(2)).
The set-GID bit of mode is ignored. The set-GID bit of the new file is inherited from that of the parent directory.
The directory’s owner ID is set to the process’s effective user ID.
The directory’s group ID is set to either:
• the effective group ID of the process, if the filesystem was not mounted with the BSD file-creation semantics flag (see mount(2)) and the set-GID bit of the parent directory is clear, or
• the group ID of the directory in which the file is created.
RETURN VALUE
A 0 return value indicates success. A −1 return value indicates an error, and an error code is stored in errno.
ERRORS
mkdir() will fail and no directory will be created if:
ENOTDIR A component of the path prefix of path is not a directory.
ENAMETOOLONG The length of a component of path exceeds 255 characters, or the length of path exceeds 1023 characters.
ENOENT A component of the path prefix of path does not exist.
EACCES Search permission is denied for a component of the path prefix of path.
ELOOP Too many symbolic links were encountered in translating path.
EROFS The file referred to by path resides on a read-only file system.
EEXIST The file referred to by path exists.
ENOSPC The directory in which the entry for the new file is being placed cannot be extended because there is no space left on the file system containing the directory.
ENOSPC The new directory cannot be created because there is no space left on the file system which will contain the directory.
ENOSPC There are no free inodes on the file system on which the file is being created.
EDQUOT The directory in which the entry for the new file is being placed cannot be extended because the user’s quota of disk blocks on the file system containing the directory has been exhausted.
EDQUOT The new directory cannot be created because the user’s quota of disk blocks on the file system which will contain the directory has been exhausted.
EDQUOT The user’s quota of inodes on the file system on which the file is being created has been exhausted.
EIO An I/O error occurred while reading from or writing to the file system.
EFAULT path points outside the process’s allocated address space.
SEE ALSO
chmod(2), mount(2), rmdir(2), stat(2), umask(2)
Sun Release 4.0 — Last change: 22 March 1989