OSDN Git Service

Update README
[linuxjm/LDP_man-pages.git] / draft / man2 / mkdir.2
index 8b3fa57..b22fe61 100644 (file)
@@ -1,10 +1,18 @@
-.\" 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.
+.\"
+.\"*******************************************************************
 .\"
 .\" Japanese Version Copyright (c) 1997 SUTO, Mitsuaki
 .\"         all rights reserved.
 .\" 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>
 .\"
-.\"WORD:       permission      許可属性
-.\"WORD:       resolve         (パス名を) 解決する
-.\"
-.TH MKDIR 2 2008-05-13 "Linux" "Linux Programmer's Manual"
-.\"O .SH NAME
+.TH MKDIR 2 2014\-08\-19 Linux "Linux Programmer's Manual"
 .SH 名前
-.\"O mkdir \- create a directory
-mkdir \- ディレクトリを作成する
-.\"O .SH SYNOPSIS
+mkdir, mkdirat \- ディレクトリを作成する
 .SH 書式
 .nf
-.B #include <sys/stat.h>
-.B #include <sys/types.h>
 .\" .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
+.sp
+\fB#include <fcntl.h>           \fP/* AT_* 定数の定義 */
+\fB#include <sys/stat.h>\fP
 .sp
-.BI "int mkdir(const char *" pathname ", mode_t " mode );
+\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
-.\"O .SH DESCRIPTION
 .SH 説明
-.\"O .BR mkdir ()
-.\"O attempts to create a directory named
-.\"O .IR pathname .
-.BR mkdir ()
-は
-.I pathname
-で示される名前のディレクトリを作成しようとする。
+\fBmkdir\fP()  は \fIpathname\fP で示される名前のディレクトリを作成しようとする。
 
-.\"O The argument
-.\"O .I mode
-.\"O specifies the permissions to use.
-.\"O It is modified by the process's
-.\"O .I umask
-.\"O in the usual way: the permissions of the created directory are
-.\"O .RI ( mode " & ~" umask " & 0777)."
-.I mode
-引き数は、作成されたディレクトリの許可属性を決定するのに使われる。
-この値に、通常通りプロセスの
-.I umask
-による修正が加えられる。
-したがって、作成されたディレクトリの許可属性は
-.RI ( mode " & ~" umask " & 0777)"
-となる。
-.\"O Other mode bits of the created directory depend on the operating system.
-.\"O For Linux, see below.
-作成されたディレクトリのその他のモードビットはオペレーティングシステムに
-依存する。Linux の場合は、以下の通りである。
+\fImode\fP 引き数は、作成されたディレクトリの許可属性を決定するのに使われる。 この値に、通常通りプロセスの \fIumask\fP
+による修正が加えられる。 したがって、作成されたディレクトリの許可属性は (\fImode\fP & ~\fIumask\fP & 0777)  となる。
+作成されたディレクトリのその他のモードビットはオペレーティングシステムに 依存する。Linux の場合は、以下の通りである。
 
-.\"O The newly created directory will be owned by the effective user ID of the
-.\"O process.
-.\"O If the directory containing the file has the set-group-ID
-.\"O bit set, or if the file system is mounted with BSD group semantics
-.\"O .RI ( "mount -o bsdgroups"
-.\"O or, synonymously
-.\"O .IR "mount -o grpid" ),
-.\"O the new directory will inherit the group ownership from its parent;
-.\"O otherwise it will be owned by the effective group ID of the process.
-新しく作成されたディレクトリの所有者はプロセスの実効ユーザ ID に設定される。
-新たに作成されたディレクトリが含まれる親ディレクトリに
-set group ID ビットがセットされていたり、ファイルシステムが BSD の
-グループセマンティクス
-.RI ( "mount -o bsdgroups"
-あるいは、同じ意味の
-.IR "mount -o grpid" )
-に従ってマウントされている場合には、
-新たに作成されたディレクトリのグループ所有権は親ディレクトリの
-ものが継承される (親ディレクトリと同じになる)。
+新しく作成されたディレクトリの所有者はプロセスの実効ユーザー ID に設定される。 新たに作成されたディレクトリが含まれる親ディレクトリに set
+group ID ビットがセットされていたり、ファイルシステムが BSD の グループセマンティクス (\fImount \-o bsdgroups\fP
+あるいは、同じ意味の \fImount \-o grpid\fP)  に従ってマウントされている場合には、
+新たに作成されたディレクトリのグループ所有権は親ディレクトリの ものが継承される (親ディレクトリと同じになる)。
 それ以外の場合は、グループ所有権はプロセスの実効グループ ID となる。
 
-.\"O If the parent directory has the set-group-ID bit set then so will the
-.\"O newly created directory.
-もし親ディレクトリに set group ID ビットがセットされていれば新しく作成される
-ディレクトリにも set group ID ビットがセットされる。
-.\"O .SH "RETURN VALUE"
+.\"
+.\"
+もし親ディレクトリに 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 返り値
-.\"O .BR mkdir ()
-.\"O returns zero on success, or \-1 if an error occurred (in which case,
-.\"O .I errno
-.\"O is set appropriately).
-.BR mkdir ()
-は成功した場合 0 を、失敗した場合 \-1 を返す (また、
-.I errno
+\fBmkdir\fP() と \fBmkdirat\fP() は成功した場合 0 を、失敗した場合 \-1 を返す (また、 \fIerrno\fP
 がエラーの内容にしたがって適切に設定される)。
-.\"O .SH ERRORS
 .SH エラー
-.TP
-.B EACCES
-.\"O The parent directory does not allow write permission to the process,
-.\"O or one of the directories in
-.\"O .I pathname
-.\"O did not allow search permission.
-.\"O (See also
-.\"O .BR path_resolution (7).)
-プロセスが親ディレクトリへの書き込み許可を持たない、もしくは
-.I pathname
-中のディレクトリのどれかに検索許可属性が無い
-.RB ( path_resolution (7)
-も参照)。
-.TP
-.B EEXIST
-.\"O .I pathname
-.\"O already exists (not necessarily as a directory).
-.I pathname
-が既に存在している(ただしそれがディレクトリであるとは限らない)。
-.\"O This includes the case where
-.\"O .I pathname
-.\"O is a symbolic link, dangling or not.
-.I pathname
-がシンボリックリンクの場合も
+.TP 
+\fBEACCES\fP
+プロセスが親ディレクトリへの書き込み許可を持たない、もしくは \fIpathname\fP 中のディレクトリのどれかに検索許可属性が無い
+(\fBpath_resolution\fP(7)  も参照)。
+.TP 
+\fBEDQUOT\fP
+ディスクブロックか inode がそのファイルシステムのユーザークォータに達していた。
+.TP 
+\fBEEXIST\fP
+\fIpathname\fP が既に存在している(ただしそれがディレクトリであるとは限らない)。 \fIpathname\fP がシンボリックリンクの場合も
 (その指定先が存在するかどうかに関らず)エラーになる。
-.TP
-.B EFAULT
-.\"O .IR pathname " points outside your accessible address space."
-.I pathname
-がそのプロセスのアクセス可能なアドレス空間の外を指している。
-.TP
-.B ELOOP
-.\"O Too many symbolic links were encountered in resolving
-.\"O .IR pathname .
-パス名
-.I pathname
-を解決するときに、解決すべきシンボリックリンクが多すぎた。
-.TP
-.B ENAMETOOLONG
-.\"O .IR pathname " was too long."
-.I pathname
-が長すぎる。
-.TP
-.B ENOENT
-.\"O A directory component in
-.\"O .I pathname
-.\"O does not exist or is a dangling symbolic link.
-.I pathname
-の構成要素のディレクトリのいずれかが存在しないか、
-またはリンク先が存在しないシンボリックリンクである。
-.TP
-.B ENOMEM
-.\"O Insufficient kernel memory was available.
-カーネルに、利用できるメモリが不足している。
-.TP
-.B ENOSPC
-.\"O The device containing
-.\"O .I pathname
-.\"O has no room for the new directory.
-.I pathname
-を含むデバイスに新たにディレクトリを作成する空きが無い。
-.TP
-.B ENOSPC
-.\"?? ENOSPC がダブっているけど...
-.\"O The new directory cannot be created because the user's disk quota is
-.\"O exhausted.
-もしくはユーザーのディスク quota が使い切られているため、
-新たにディレクトリを作成することができない。
-.TP
-.B ENOTDIR
-.\"O A component used as a directory in
-.\"O .I pathname
-.\"O is not, in fact, a directory.
-.I pathname
-中のディレクトリ部分が実際にはディレクトリでない。
-.TP
-.B EPERM
-.\"O The file system containing
-.\"O .I pathname
-.\"O does not support the creation of directories.
-.I pathname
-を含むファイルシステムがディレクトリの作成をサポートしていない。
-.TP
-.B EROFS
-.\"O .I pathname
-.\"O refers to a file on a read-only file system.
-.I pathname
-が読み出し専用ファイルシステム上のファイルを指している。
-.\"O .SH "CONFORMING TO"
+.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 が読み出し専用ファイルシステム上のファイルを指している。
+.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 準拠
-.\"O SVr4, BSD, POSIX.1-2001.
-.\"O .\" SVr4 documents additional EIO, EMULTIHOP
-SVr4, BSD, POSIX.1-2001.
-.\" SVr4 にはさらにエラーコード EIO, EMULTIHOP についての記述がある。
-.\"O .SH NOTES
+.\" SVr4 documents additional EIO, EMULTIHOP
+\fBmkdir\fP(): SVr4, BSD, POSIX.1\-2001, POSIX.1\-2008.
+
+\fBmkdirat\fP(): POSIX.1\-2008.
 .SH 注意
-.\"O Under Linux apart from the permission bits, only the
-.\"O .B S_ISVTX
-.\"O mode bit is honored.
-.\"O That is, under Linux the created directory actually gets mode
-.\"O .RI ( mode " & ~" umask " & 01777)."
-.\"O See also
-.\"O .BR stat (2).
-Linux では、許可ビット以外で意味を持つのは、
-.B S_ISVTX
-モードビットだけである。
-つまり、Linux では作成されたディレクトリは実際には
-.RI ( mode " & ~" umask " & 01777)"
-のモードを持つことになる。
-.BR stat (2)
+Linux では、許可ビット以外で意味を持つのは、 \fBS_ISVTX\fP モードビットだけである。 つまり、Linux
+では作成されたディレクトリは実際には (\fImode\fP & ~\fIumask\fP & 01777)  のモードを持つことになる。 \fBstat\fP(2)
 を参照のこと。
 .PP
-.\"O There are many infelicities in the protocol underlying NFS.
-.\"O Some of these affect
-.\"O .BR mkdir ().
-NFS を実現しているプロトコルには多くの不備が存在し、
-それら中には
-.BR mkdir ()
-に影響を与えるものもある。
-.\"O .SH "SEE ALSO"
+NFS を実現しているプロトコルには多くの不備が存在し、 それら中には \fBmkdir\fP()  に影響を与えるものもある。
+.SS "glibc での注意"
+\fBmkdirat\fP() が利用できない古いカーネルでは、 glibc ラッパー関数は \fBmkdir\fP() を使用するモードにフォールバックする。
+\fIpathname\fP が相対パスの場合、 glibc は \fIdirfd\fP 引き数に対応する \fI/proc/self/fd\fP
+のシンボリックリンクに基づいてパス名を構成する。
 .SH 関連項目
-.BR mkdir (1),
-.BR chmod (2),
-.BR chown (2),
-.BR mkdirat (2),
-.BR mknod (2),
-.BR mount (2),
-.BR rmdir (2),
-.BR stat (2),
-.BR umask (2),
-.BR unlink (2),
-.BR path_resolution (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.79 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。