Index Index for
Section 2
Index Alphabetical
listing for M
Bottom of page Bottom of
page

mkdir(2)

NAME

mkdir - Create a directory

SYNOPSIS

#include <sys/types.h> #include <sys/stat.h> int mkdir( const char *path, mode_t mode );

STANDARDS

Interfaces documented on this reference page conform to industry standards as follows: mkdir(): XSH4.0, XSH4.2, XSH5.0 Refer to the standards(5) reference page for more information about industry standards and associated tags.

PARAMETERS

path Specifies the path 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. [Tru64 UNIX] Symbolic links in the path are traversed with the following exceptions: · If the final node of path refers to a symbolic link whose target directory exists, the new directory is not created and the [EEXIST] error is returned. · If the final node of path is a symbolic link whose target directory does not exist, the new directory is not created and the [EEXIST] error is returned unless one of the following conditions is true: -- The path value ends with a slash (/) character. -- The follow_mkdir_symlinks attribute of the vfs kernel subsystem is set to 1. See sys_attrs_vfs(5) for more information about this attribute. If the target directory of the symbolic link does not exist and either of these conditions is true, the target directory of the symbolic link is created. For security reasons, the default function behavior is strongly recommended. In other words, do not include the slash character at the end of the path value and keep the follow_mkdir_symlinks attribute at its default setting, which is 0 (zero). mode Specifies the mask for the read, write, and execute (RWX) flags for owner, group, and others.

DESCRIPTION

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 umask(2)). This parameter is constructed by a logical OR operation on 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 update.

RETURN VALUES

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.

ERRORS

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] [Tru64 UNIX] 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 inodes on the file system containing the directory is exhausted. [EEXIST] The named file already exists. [Tru64 UNIX] By default, this error is returned when the final node of the specified path is a symbolic link. [EFAULT] [Tru64 UNIX] The path parameter is an invalid address. [EINVAL] [Tru64 UNIX] The owner or group ID is not a value that is supported by this implementation. [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. [ENAMETOOLONG] The length of the path parameter exceeds PATH_MAX or a pathname component is longer than NAME_MAX. Pathname resolution of a symbolic link produced an intermediate result whose length exceeds PATH_MAX. [ENOENT] A component of the path parameter does not exist or points to an empty string. [ENOMEM] Unable to allocate a directory buffer. [ENOSPC] The file system does not contain enough space to hold the contents 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 directory because the server has unmounted or unexported the remote directory.

SEE ALSO

Commands: chmod(1), mkdir(1), mknod(8) Functions: chmod(2), mknod(2), rmdir(2), umask(2) Others: standards(5)

Index Index for
Section 2
Index Alphabetical
listing for M
Top of page Top of
page