OSDN Git Service

(split) LDP: Update release (3.64)
[linuxjm/LDP_man-pages.git] / release / man2 / mkdir.2
index 6b6460b..9376368 100644 (file)
@@ -1,19 +1,36 @@
-.\" Hey Emacs! This file is -*- nroff -*- source.
-.\"
 .\" This manpage is Copyright (C) 1992 Drew Eckhardt;
-.\"                               1993 Michael Haardt
-.\"                               1993,1994 Ian Jackson.
+.\"             and Copyright (C) 1993 Michael Haardt
+.\"             and Copyright (C) 1993,1994 Ian Jackson
+.\"            and Copyright (C) 2006, 2014 Michael Kerrisk
+.\"
+.\" %%%LICENSE_START(GPL_NOVERSION_ONELINE)
 .\" You may distribute it under the terms of the GNU General
 .\" Public License. It comes with NO WARRANTY.
+.\" %%%LICENSE_END
 .\"
 .\"*******************************************************************
 .\"
 .\" This file was generated with po4a. Translate the source file.
 .\"
 .\"*******************************************************************
-.TH MKDIR 2 2010\-06\-26 Linux "Linux Programmer's Manual"
+.\"
+.\" Japanese Version Copyright (c) 1997 SUTO, Mitsuaki
+.\"         all rights reserved.
+.\" Translated Thu Jun 26 20:47:26 JST 1997
+.\"         by SUTO, Mitsuaki <suto@av.crl.sony.co.jp>
+.\" Updated & Modified Fri Jan 22 1999
+.\"         by NAKANO Takeo <nakano@apm.seikei.ac.jp>
+.\" Updated Fri Sep 13 JST 2000 by Kentaro Shirakata <argrath@ub32.org>
+.\" Updated Sun May 23 JST 2004 by Kentaro Shirakata <argrath@ub32.org>
+.\" Updated Thu Mar 24 JST 2005 by Kentaro Shirakata <argrath@ub32.org>
+.\" Updated Wed Jul 30 JST 2008 by Kentaro Shirakata <argrath@ub32.org>
+.\" Updated 2012-05-08, Akihiro MOTOKI <amotoki@gmail.com>
+.\" Updated 2013-05-01, Akihiro MOTOKI <amotoki@gmail.com>
+.\" Updated 2013-05-06, Akihiro MOTOKI <amotoki@gmail.com>
+.\"
+.TH MKDIR 2 2014\-02\-21 Linux "Linux Programmer's Manual"
 .SH 名前
-mkdir \- ディレクトリを作成する
+mkdir, mkdirat \- ディレクトリを作成する
 .SH 書式
 .nf
 .\" .B #include <unistd.h>
@@ -21,6 +38,30 @@ mkdir \- ディレクトリを作成する
 \fB#include <sys/types.h>\fP
 .sp
 \fBint mkdir(const char *\fP\fIpathname\fP\fB, mode_t \fP\fImode\fP\fB);\fP
+.sp
+\fB#include <fcntl.h>           \fP/* AT_* 定数の定義 */
+\fB#include <sys/stat.h>\fP
+.sp
+\fBint mkdirat(int \fP\fIdirfd\fP\fB, const char *\fP\fIpathname\fP\fB, mode_t \fP\fImode\fP\fB);\fP
+.fi
+.sp
+.in -4n
+glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7)  参照):
+.in
+.sp
+\fBmkdirat\fP():
+.PD 0
+.ad l
+.RS 4
+.TP  4
+glibc 2.10 以降:
+_XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L
+.TP 
+glibc 2.10 より前:
+_ATFILE_SOURCE
+.RE
+.ad
+.PD
 .fi
 .SH 説明
 \fBmkdir\fP()  は \fIpathname\fP で示される名前のディレクトリを作成しようとする。
@@ -35,16 +76,35 @@ group ID ビットがセットされていたり、ファイルシステムが B
 新たに作成されたディレクトリのグループ所有権は親ディレクトリの ものが継承される (親ディレクトリと同じになる)。
 それ以外の場合は、グループ所有権はプロセスの実効グループ ID となる。
 
+.\"
+.\"
 もし親ディレクトリに set group ID ビットがセットされていれば新しく作成される ディレクトリにも set group ID
 ビットがセットされる。
+.SS mkdirat()
+\fBmkdirat\fP() システムコールは \fBmkdir\fP() と全く同様に動作するが、以下で説明する点が異なる。
+
+\fIpathname\fP で指定されたパス名が相対パスの場合、このパス名はファイルディスクリプター \fIdirfd\fP
+が参照するディレクトリに対する相対パスと解釈される (\fBmkdir\fP()
+に相対パス名を渡した場合のように、呼び出したプロセスのカレントワーキングディレクトリに対する相対パスではない)。
+
+\fIpathname\fP で指定されたパス名が相対パスで、 \fIdirfd\fP が特別な値 \fBAT_FDCWD\fP の場合、 (\fBmkdir\fP()
+と同様に) \fIpathname\fP は呼び出したプロセスのカレントワーキングディレクトリに対する相対パスと解釈される。
+
+\fIpathname\fP で指定されたパス名が絶対パスの場合、 \fIdirfd\fP は無視される。
+.PP
+\fBmkdirat\fP() の必要性についての説明については \fBopenat\fP(2) を参照。
 .SH 返り値
-\fBmkdir\fP()  は成功した場合 0 を、失敗した場合 \-1 を返す (また、 \fIerrno\fP がエラーの内容にしたがって適切に設定される)。
+\fBmkdir\fP() と \fBmkdirat\fP() は成功した場合 0 を、失敗した場合 \-1 を返す (また、 \fIerrno\fP
+がエラーの内容にしたがって適切に設定される)。
 .SH エラー
 .TP 
 \fBEACCES\fP
 プロセスが親ディレクトリへの書き込み許可を持たない、もしくは \fIpathname\fP 中のディレクトリのどれかに検索許可属性が無い
 (\fBpath_resolution\fP(7)  も参照)。
 .TP 
+\fBEDQUOT\fP
+ディスクブロックか inode がそのファイルシステムのユーザクォータに達していた。
+.TP 
 \fBEEXIST\fP
 \fIpathname\fP が既に存在している(ただしそれがディレクトリであるとは限らない)。 \fIpathname\fP がシンボリックリンクの場合も
 (その指定先が存在するかどうかに関らず)エラーになる。
@@ -81,9 +141,22 @@ group ID ビットがセットされていたり、ファイルシステムが B
 .TP 
 \fBEROFS\fP
 \fIpathname\fP が読み出し専用ファイルシステム上のファイルを指している。
+.PP
+\fBmkdirat\fP() では以下のエラーも発生する。
+.TP 
+\fBEBADF\fP
+\fIdirfd\fP が適切なファイルディスクリプタでない。
+.TP 
+\fBENOTDIR\fP
+\fIpathname\fP が相対パスで、 \fIdirfd\fP がディレクトリ以外のファイルを参照しているファイルディスクリプタである。
+.SH バージョン
+\fBmkdirat\fP()  はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサポートはバージョン 2.4 で glibc
+に追加された。
 .SH 準拠
 .\" SVr4 documents additional EIO, EMULTIHOP
-SVr4, BSD, POSIX.1\-2001.
+\fBmkdir\fP(): SVr4, BSD, POSIX.1\-2001, POSIX.1\-2008.
+
+\fBmkdirat\fP(): POSIX.1\-2008.
 .SH 注意
 Linux では、許可ビット以外で意味を持つのは、 \fBS_ISVTX\fP モードビットだけである。 つまり、Linux
 では作成されたディレクトリは実際には (\fImode\fP & ~\fIumask\fP & 01777)  のモードを持つことになる。 \fBstat\fP(2)
@@ -91,10 +164,9 @@ Linux では、許可ビット以外で意味を持つのは、 \fBS_ISVTX\fP 
 .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)
+\fBmkdir\fP(1), \fBchmod\fP(2), \fBchown\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 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.64 の一部
 である。プロジェクトの説明とバグ報告に関する情報は
 http://www.kernel.org/doc/man\-pages/ に書かれている。