]> git.ipfire.org Git - thirdparty/man-pages.git/blame - man2/mkdir.2
Wrapped long lines, wrapped at sentence boundaries; stripped trailing
[thirdparty/man-pages.git] / man2 / mkdir.2
CommitLineData
fea681da
MK
1.\" Hey Emacs! This file is -*- nroff -*- source.
2.\"
3.\" This manpage is Copyright (C) 1992 Drew Eckhardt;
4.\" 1993 Michael Haardt
5.\" 1993,1994 Ian Jackson.
6.\" You may distribute it under the terms of the GNU General
7.\" Public Licence. It comes with NO WARRANTY.
8.\"
9.TH MKDIR 2 2003-12-09 "Linux 2.4" "Linux Programmer's Manual"
10.SH NAME
11mkdir \- create a directory
12.SH SYNOPSIS
13.nf
14.B #include <sys/stat.h>
15.B #include <sys/types.h>
16.\" .B #include <unistd.h>
17.sp
18.BI "int mkdir(const char *" pathname ", mode_t " mode );
19.fi
20.SH DESCRIPTION
e511ffb6 21.BR mkdir ()
fea681da
MK
22attempts to create a directory named
23.IR pathname .
24
25The parameter
26.I mode
c13182ef
MK
27specifies the permissions to use.
28It is modified by the process's
fea681da
MK
29.I umask
30in the usual way: the permissions of the created directory are
31.RI ( mode " & ~" umask " & 0777)."
32Other mode bits of the created directory depend on the operating system.
33For Linux, see below.
34
35The newly created directory will be owned by the effective user ID of the
c13182ef
MK
36process.
37If the directory containing the file has the set-group-ID
fea681da
MK
38bit set, or if the filesystem is mounted with BSD group semantics, the
39new directory will inherit the group ownership from its parent;
40otherwise it will be owned by the effective group ID of the process.
41
c7400a2c 42If the parent directory has the set-group-ID bit set then so will the
fea681da 43newly created directory.
fea681da 44.SH "RETURN VALUE"
e511ffb6 45.BR mkdir ()
fea681da
MK
46returns zero on success, or \-1 if an error occurred (in which case,
47.I errno
48is set appropriately).
49.SH ERRORS
50.TP
51.B EACCES
52The parent directory does not allow write permission to the process,
53or one of the directories in
54.IR pathname
55did not allow search permission.
56(See also
57.BR path_resolution (2).)
58.TP
59.B EEXIST
60.I pathname
61already exists (not necessarily as a directory).
62This includes the case where
63.I pathname
64is a symbolic link, dangling or not.
65.TP
66.B EFAULT
67.IR pathname " points outside your accessible address space."
68.TP
69.B ELOOP
70Too many symbolic links were encountered in resolving
71.IR pathname .
72.TP
73.B ENAMETOOLONG
74.IR pathname " was too long."
75.TP
76.B ENOENT
77A directory component in
78.I pathname
79does not exist or is a dangling symbolic link.
80.TP
81.B ENOMEM
82Insufficient kernel memory was available.
83.TP
84.B ENOSPC
85The device containing
86.I pathname
87has no room for the new directory.
88.TP
89.B ENOSPC
90The new directory cannot be created because the user's disk quota is
91exhausted.
92.TP
93.B ENOTDIR
94A component used as a directory in
95.I pathname
96is not, in fact, a directory.
97.TP
98.B EPERM
99The filesystem containing
100.IR pathname
101does not support the creation of directories.
102.TP
103.B EROFS
104.I pathname
105refers to a file on a read-only filesystem.
106.SH "CONFORMING TO"
97c1eac8
MK
107SVr4, BSD, POSIX.1-2001.
108.\" SVr4 documents additional EIO, EMULTIHOP
fea681da
MK
109.SH NOTES
110Under Linux apart from the permission bits, only the S_ISVTX mode bit
c13182ef
MK
111is honored.
112That is, under Linux the created directory actually gets mode
fea681da
MK
113.RI ( mode " & ~" umask " & 01777)."
114See also
115.BR stat (2).
116.PP
c13182ef
MK
117There are many infelicities in the protocol underlying NFS.
118Some of these affect
e511ffb6 119.BR mkdir ().
fea681da
MK
120.SH "SEE ALSO"
121.BR mkdir (1),
122.BR chmod (2),
d2927a1b 123.BR mkdirat (2),
fea681da
MK
124.BR mknod (2),
125.BR mount (2),
126.BR path_resolution (2),
127.BR rmdir (2),
128.BR stat (2),
129.BR umask (2),
130.BR unlink (2)