]> git.ipfire.org Git - thirdparty/man-pages.git/blame - man2/mkdirat.2
intro.1, _exit.2, access.2, alarm.2, alloc_hugepages.2, arch_prctl.2, bind.2, chdir...
[thirdparty/man-pages.git] / man2 / mkdirat.2
CommitLineData
4a929ee1
MK
1.\" This manpage is Copyright (C) 2006, Michael Kerrisk
2.\"
93015253 3.\" %%%LICENSE_START(VERBATIM)
4a929ee1
MK
4.\" Permission is granted to make and distribute verbatim copies of this
5.\" manual provided the copyright notice and this permission notice are
6.\" preserved on all copies.
7.\"
8.\" Permission is granted to copy and distribute modified versions of this
9.\" manual under the conditions for verbatim copying, provided that the
10.\" entire resulting derived work is distributed under the terms of a
11.\" permission notice identical to this one.
c13182ef 12.\"
4a929ee1
MK
13.\" Since the Linux kernel and libraries are constantly changing, this
14.\" manual page may be incorrect or out-of-date. The author(s) assume no
15.\" responsibility for errors or omissions, or for damages resulting from
16.\" the use of the information contained herein. The author(s) may not
17.\" have taken the same level of care in the production of this manual,
18.\" which is licensed free of charge, as they might when working
19.\" professionally.
c13182ef 20.\"
4a929ee1
MK
21.\" Formatted or processed versions of this manual, if unaccompanied by
22.\" the source, must acknowledge the copyright and authors of this work.
4b72fb64 23.\" %%%LICENSE_END
4a929ee1
MK
24.\"
25.\"
c95b6ae1 26.TH MKDIRAT 2 2012-05-04 "Linux" "Linux Programmer's Manual"
4a929ee1 27.SH NAME
97c0488f 28mkdirat \- create a directory relative to a directory file descriptor
4a929ee1
MK
29.SH SYNOPSIS
30.nf
5c108873 31.B #include <fcntl.h> /* Definition of AT_* constants */
4a929ee1
MK
32.B #include <sys/stat.h>
33.sp
34.BI "int mkdirat(int " dirfd ", const char *" pathname ", mode_t " mode );
35.fi
7cc796ee
MK
36.sp
37.in -4n
38Feature Test Macro Requirements for glibc (see
39.BR feature_test_macros (7)):
40.in
41.sp
42.BR mkdirat ():
37877088
MK
43.PD 0
44.ad l
45.RS 4
46.TP 4
47Since glibc 2.10:
48_XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L
49.TP
7cc796ee
MK
50Before glibc 2.10:
51_ATFILE_SOURCE
37877088
MK
52.RE
53.ad
54.PD
4a929ee1
MK
55.SH DESCRIPTION
56The
57.BR mkdirat ()
58system call operates in exactly the same way as
59.BR mkdir (2),
60except for the differences described in this manual page.
61
c13182ef 62If the pathname given in
4a929ee1
MK
63.I pathname
64is relative, then it is interpreted relative to the directory
65referred to by the file descriptor
0daa9e92 66.I dirfd
c13182ef 67(rather than relative to the current working directory of
4a929ee1
MK
68the calling process, as is done by
69.BR mkdir (2)
70for a relative pathname).
71
1343b604 72If
4a929ee1 73.I pathname
c13182ef 74is relative and
4a929ee1
MK
75.I dirfd
76is the special value
77.BR AT_FDCWD ,
7fe3091d
MK
78then
79.I pathname
c13182ef 80is interpreted relative to the current working
4a929ee1
MK
81directory of the calling process (like
82.BR mkdir (2)).
83
1343b604 84If
0daa9e92 85.I pathname
c13182ef
MK
86is absolute, then
87.I dirfd
4a929ee1 88is ignored.
47297adb 89.SH RETURN VALUE
7fe3091d 90On success,
c13182ef
MK
91.BR mkdirat ()
92returns 0.
4a929ee1
MK
93On error, \-1 is returned and
94.I errno
95is set to indicate the error.
96.SH ERRORS
97The same errors that occur for
98.BR mkdir (2)
99can also occur for
100.BR mkdirat ().
c13182ef 101The following additional errors can occur for
4a929ee1
MK
102.BR mkdirat ():
103.TP
104.B EBADF
105.I dirfd
106is not a valid file descriptor.
107.TP
108.B ENOTDIR
97c0488f 109.I pathname
b328773d 110is relative and
4a929ee1
MK
111.I dirfd
112is a file descriptor referring to a file other than a directory.
a1d5f77c
MK
113.SH VERSIONS
114.BR mkdirat ()
c95b6ae1
MK
115was added to Linux in kernel 2.6.16;
116library support was added to glibc in version 2.4.
47297adb 117.SH CONFORMING TO
5144e45f 118POSIX.1-2008.
4a929ee1
MK
119.SH NOTES
120See
121.BR openat (2)
122for an explanation of the need for
123.BR mkdirat ().
47297adb 124.SH SEE ALSO
4a929ee1
MK
125.BR mkdir (2),
126.BR openat (2),
ad7cc990 127.BR path_resolution (7)