File: mkdir.2

package info (click to toggle)
manpages-ja 0.5.0.0.20120606-1
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 25,964 kB
  • sloc: perl: 161; makefile: 116
file content (100 lines) | stat: -rw-r--r-- 5,345 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
.\" Hey Emacs! This file is -*- nroff -*- source.
.\"
.\" This manpage is Copyright (C) 1992 Drew Eckhardt;
.\"                               1993 Michael Haardt
.\"                               1993,1994 Ian Jackson.
.\" You may distribute it under the terms of the GNU General
.\" Public License. It comes with NO WARRANTY.
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH MKDIR 2 2010\-06\-26 Linux "Linux Programmer's Manual"
.SH 名前
mkdir \- ディレクトリを作成する
.SH 書式
.nf
.\" .B #include <unistd.h>
\fB#include <sys/stat.h>\fP
\fB#include <sys/types.h>\fP
.sp
\fBint mkdir(const char *\fP\fIpathname\fP\fB, mode_t \fP\fImode\fP\fB);\fP
.fi
.SH 説明
\fBmkdir\fP()  は \fIpathname\fP で示される名前のディレクトリを作成しようとする。

\fImode\fP 引き数は、作成されたディレクトリの許可属性を決定するのに使われる。 この値に、通常通りプロセスの \fIumask\fP
による修正が加えられる。 したがって、作成されたディレクトリの許可属性は (\fImode\fP & ~\fIumask\fP & 0777)  となる。
作成されたディレクトリのその他のモードビットはオペレーティングシステムに 依存する。Linux の場合は、以下の通りである。

新しく作成されたディレクトリの所有者はプロセスの実効ユーザ ID に設定される。 新たに作成されたディレクトリが含まれる親ディレクトリに set
group ID ビットがセットされていたり、ファイルシステムが BSD の グループセマンティクス (\fImount \-o bsdgroups\fP
あるいは、同じ意味の \fImount \-o grpid\fP)  に従ってマウントされている場合には、
新たに作成されたディレクトリのグループ所有権は親ディレクトリの ものが継承される (親ディレクトリと同じになる)。
それ以外の場合は、グループ所有権はプロセスの実効グループ ID となる。

もし親ディレクトリに set group ID ビットがセットされていれば新しく作成される ディレクトリにも set group ID
ビットがセットされる。
.SH 返り値
\fBmkdir\fP()  は成功した場合 0 を、失敗した場合 \-1 を返す (また、 \fIerrno\fP がエラーの内容にしたがって適切に設定される)。
.SH エラー
.TP 
\fBEACCES\fP
プロセスが親ディレクトリへの書き込み許可を持たない、もしくは \fIpathname\fP 中のディレクトリのどれかに検索許可属性が無い
(\fBpath_resolution\fP(7)  も参照)。
.TP 
\fBEEXIST\fP
\fIpathname\fP が既に存在している(ただしそれがディレクトリであるとは限らない)。 \fIpathname\fP がシンボリックリンクの場合も
(その指定先が存在するかどうかに関らず)エラーになる。
.TP 
\fBEFAULT\fP
\fIpathname\fP がアクセス可能なアドレス空間の外を指している。
.TP 
\fBELOOP\fP
\fIpathname\fP を解決するときに、解決すべきシンボリックリンクが多すぎた。
.TP 
\fBEMLINK\fP
親ディレクトリへのリンク数が \fBLINK_MAX\fP を超えてしまう。
.TP 
\fBENAMETOOLONG\fP
\fIpathname\fP が長すぎる。
.TP 
\fBENOENT\fP
\fIpathname\fP の構成要素のディレクトリのいずれかが存在しないか、 またはリンク先が存在しないシンボリックリンクである。
.TP 
\fBENOMEM\fP
カーネルに十分なメモリがない。
.TP 
\fBENOSPC\fP
\fIpathname\fP を含むデバイスに新たにディレクトリを作成する空きが無い。
.TP 
\fBENOSPC\fP
もしくはユーザーのディスク quota が使い切られているため、 新たにディレクトリを作成することができない。
.TP 
\fBENOTDIR\fP
\fIpathname\fP のディレクトリ部分が実際にはディレクトリでない。
.TP 
\fBEPERM\fP
\fIpathname\fP を含むファイルシステムがディレクトリの作成をサポートしていない。
.TP 
\fBEROFS\fP
\fIpathname\fP が読み出し専用ファイルシステム上のファイルを指している。
.SH 準拠
.\" SVr4 documents additional EIO, EMULTIHOP
SVr4, BSD, POSIX.1\-2001.
.SH 注意
Linux では、許可ビット以外で意味を持つのは、 \fBS_ISVTX\fP モードビットだけである。 つまり、Linux
では作成されたディレクトリは実際には (\fImode\fP & ~\fIumask\fP & 01777)  のモードを持つことになる。 \fBstat\fP(2)
を参照のこと。
.PP
NFS を実現しているプロトコルには多くの不備が存在し、 それら中には \fBmkdir\fP()  に影響を与えるものもある。
.SH 関連項目
\fBmkdir\fP(1), \fBchmod\fP(2), \fBchown\fP(2), \fBmkdirat\fP(2), \fBmknod\fP(2),
\fBmount\fP(2), \fBrmdir\fP(2), \fBstat\fP(2), \fBumask\fP(2), \fBunlink\fP(2),
\fBpath_resolution\fP(7)
.SH この文書について
この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.41 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man\-pages/ に書かれている。