OSDN Git Service

(split) Convert release and draft pages to UTF-8.
[linuxjm/LDP_man-pages.git] / release / man2 / mkdir.2
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 License. It comes with NO WARRANTY.
8 .\"
9 .\" Japanese Version Copyright (c) 1997 SUTO, Mitsuaki
10 .\"         all rights reserved.
11 .\" Translated Thu Jun 26 20:47:26 JST 1997
12 .\"         by SUTO, Mitsuaki <suto@av.crl.sony.co.jp>
13 .\" Updated & Modified Fri Jan 22 1999
14 .\"         by NAKANO Takeo <nakano@apm.seikei.ac.jp>
15 .\" Updated Fri Sep 13 JST 2000 by Kentaro Shirakata <argrath@ub32.org>
16 .\" Updated Sun May 23 JST 2004 by Kentaro Shirakata <argrath@ub32.org>
17 .\" Updated Thu Mar 24 JST 2005 by Kentaro Shirakata <argrath@ub32.org>
18 .\" Updated Wed Jul 30 JST 2008 by Kentaro Shirakata <argrath@ub32.org>
19 .\"
20 .\"WORD:        permission      許可属性
21 .\"WORD:        resolve         (パス名を) 解決する
22 .\"
23 .TH MKDIR 2 2008-05-13 "Linux" "Linux Programmer's Manual"
24 .SH 名前
25 mkdir \- ディレクトリを作成する
26 .SH 書式
27 .nf
28 .B #include <sys/stat.h>
29 .B #include <sys/types.h>
30 .\" .B #include <unistd.h>
31 .sp
32 .BI "int mkdir(const char *" pathname ", mode_t " mode );
33 .fi
34 .SH 説明
35 .BR mkdir ()
36
37 .I pathname
38 で示される名前のディレクトリを作成しようとする。
39
40 .I mode
41 引き数は、作成されたディレクトリの許可属性を決定するのに使われる。
42 この値に、通常通りプロセスの
43 .I umask
44 による修正が加えられる。
45 したがって、作成されたディレクトリの許可属性は
46 .RI ( mode " & ~" umask " & 0777)"
47 となる。
48 作成されたディレクトリのその他のモードビットはオペレーティングシステムに
49 依存する。Linux の場合は、以下の通りである。
50
51 新しく作成されたディレクトリの所有者はプロセスの実効ユーザ ID に設定される。
52 新たに作成されたディレクトリが含まれる親ディレクトリに
53 set group ID ビットがセットされていたり、ファイルシステムが BSD の
54 グループセマンティクス
55 .RI ( "mount -o bsdgroups"
56 あるいは、同じ意味の
57 .IR "mount -o grpid" )
58 に従ってマウントされている場合には、
59 新たに作成されたディレクトリのグループ所有権は親ディレクトリの
60 ものが継承される (親ディレクトリと同じになる)。
61 それ以外の場合は、グループ所有権はプロセスの実効グループ ID となる。
62
63 もし親ディレクトリに set group ID ビットがセットされていれば新しく作成される
64 ディレクトリにも set group ID ビットがセットされる。
65 .SH 返り値
66 .BR mkdir ()
67 は成功した場合 0 を、失敗した場合 \-1 を返す (また、
68 .I errno
69 がエラーの内容にしたがって適切に設定される)。
70 .SH エラー
71 .TP
72 .B EACCES
73 プロセスが親ディレクトリへの書き込み許可を持たない、もしくは
74 .I pathname
75 中のディレクトリのどれかに検索許可属性が無い
76 .RB ( path_resolution (7)
77 も参照)。
78 .TP
79 .B EEXIST
80 .I pathname
81 が既に存在している(ただしそれがディレクトリであるとは限らない)。
82 .I pathname
83 がシンボリックリンクの場合も
84 (その指定先が存在するかどうかに関らず)エラーになる。
85 .TP
86 .B EFAULT
87 .I pathname
88 がそのプロセスのアクセス可能なアドレス空間の外を指している。
89 .TP
90 .B ELOOP
91 パス名
92 .I pathname
93 を解決するときに、解決すべきシンボリックリンクが多すぎた。
94 .TP
95 .B ENAMETOOLONG
96 .I pathname
97 が長すぎる。
98 .TP
99 .B ENOENT
100 .I pathname
101 の構成要素のディレクトリのいずれかが存在しないか、
102 またはリンク先が存在しないシンボリックリンクである。
103 .TP
104 .B ENOMEM
105 カーネルに、利用できるメモリが不足している。
106 .TP
107 .B ENOSPC
108 .I pathname
109 を含むデバイスに新たにディレクトリを作成する空きが無い。
110 .TP
111 .B ENOSPC
112 .\"?? ENOSPC がダブっているけど...
113 もしくはユーザーのディスク quota が使い切られているため、
114 新たにディレクトリを作成することができない。
115 .TP
116 .B ENOTDIR
117 .I pathname
118 中のディレクトリ部分が実際にはディレクトリでない。
119 .TP
120 .B EPERM
121 .I pathname
122 を含むファイルシステムがディレクトリの作成をサポートしていない。
123 .TP
124 .B EROFS
125 .I pathname
126 が読み出し専用ファイルシステム上のファイルを指している。
127 .SH 準拠
128 SVr4, BSD, POSIX.1-2001.
129 .\" SVr4 にはさらにエラーコード EIO, EMULTIHOP についての記述がある。
130 .SH 注意
131 Linux では、許可ビット以外で意味を持つのは、
132 .B S_ISVTX
133 モードビットだけである。
134 つまり、Linux では作成されたディレクトリは実際には
135 .RI ( mode " & ~" umask " & 01777)"
136 のモードを持つことになる。
137 .BR stat (2)
138 を参照のこと。
139 .PP
140 NFS を実現しているプロトコルには多くの不備が存在し、
141 それら中には
142 .BR mkdir ()
143 に影響を与えるものもある。
144 .SH 関連項目
145 .BR mkdir (1),
146 .BR chmod (2),
147 .BR chown (2),
148 .BR mkdirat (2),
149 .BR mknod (2),
150 .BR mount (2),
151 .BR rmdir (2),
152 .BR stat (2),
153 .BR umask (2),
154 .BR unlink (2),
155 .BR path_resolution (7)