HP-UX Reference (11i v3 07/02) - 2 System Calls (vol 5)
m
mkdir(2) mkdir(2)
NAME
mkdir - make a directory file
SYNOPSIS
#include <sys/stat.h>
int mkdir(const char *path, mode_t mode);
DESCRIPTION
The mkdir() system call creates a new directory file named by path. The file permission bits of the new
directory are initialized from mode, and are modified by the process’s file mode creation mask. For each bit
set in the process’s file mode creation mask, the corresponding bit in the new directory’s mode is cleared
(see umask(2)).
The directory’s owner ID is set to the process’s effective-user-ID. If the set-group-ID bit of the parent direc-
tory is set, the directory’s group ID is set to the group ID of the parent directory. Otherwise, the directory’s
group ID is set to the process’s effective-group-ID. The set-group-ID bit of the new directory is set to the
same value as the set-group-ID bit of the parent directory.
Symbolic constants defining the access permission bits are found in the
<sys/stat.h> header and are
used to construct the argument mode. The value of the argument mode is the bitwise inclusive OR of the
values of the desired permissions.
S_IRUSR Read by owner.
S_IWUSR Write by owner.
S_IXUSR Execute (search) by owner.
S_IRGRP Read by group.
S_IWGRP Write by group.
S_IXGRP Execute (search) by group.
S_IROTH Read by others (that is, anybody else).
S_IWOTH Write by others.
S_IXOTH Execute (search) by others.
Access Control Lists - HFS File Systems Only
On HFS file systems implementing access control lists, the directory is created with three base ACL
entries, corresponding to the file access permission bits (see acl(5)).
Access Control Lists - JFS File Systems Only
On JFS file systems that support access control lists, optional ACL entries are created corresponding to the
parent directory’s default ACL entries. Also, the parent directory’s default ACL entries are copied as the
new directory’s default ACL entries (see aclv(5)).
RETURN VALUE
mkdir() returns one of the following values:
0 Successful completion.
-1 Failure. An error code is stored in
errno.
ERRORS
If
mkdir() fails, no directory is created and errno is set to one of the following values:
[EACCES] A component of the path prefix denies search permission.
[EACCES] The parent directory of the new directory denies write permission.
[EDQUOT] User’s or group’s disk quota block or inode limit has been reached for this file system.
[EEXIST] The named file already exists.
[EFAULT] path points outside the process’s allocated address space. The reliable detection of this
error is implementation dependent.
[EIO] An I/O error occurred while writing to the file system.
[ELOOP] Too many symbolic links are encountered in translating the path name.
[EMLINK] The maximum number of links to the parent directory, LINK_MAX, would be exceeded.
190 Hewlett-Packard Company − 1 − HP-UX 11i Version 3: February 2007