 |
Index for Section 2 |
|
 |
Alphabetical listing for M |
|
 |
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 for Section 2 |
|
 |
Alphabetical listing for M |
|
 |
Top of page |
|