OSDN Git Service

Update release for LDP 3.67
[linuxjm/LDP_man-pages.git] / release / man2 / mknod.2
index 9168755..5f3bcda 100644 (file)
@@ -1,10 +1,12 @@
-.\" 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
 .\"
 .\" Modified 1996-08-18 by urs
 .\" Modified 2003-04-23 by Michael Kerrisk
 .\" This file was generated with po4a. Translate the source file.
 .\"
 .\"*******************************************************************
-.TH MKNOD 2 2010\-09\-20 Linux "Linux Programmer's Manual"
+.\"
+.\" Japanese Version Copyright (c) 1997 SUTO, Mitsuaki
+.\"         all rights reserved.
+.\" Translated 1997-06-26, SUTO, Mitsuaki <suto@av.crl.sony.co.jp>
+.\" Updated & Modified 1999-03-01, NAKANO Takeo <nakano@apm.seikei.ac.jp>
+.\" Updated & Modified 2001-06-04, Yuichi SATO <ysato@h4.dion.ne.jp>
+.\" Updated & Modified 2003-07-26, Yuichi SATO <ysato444@yahoo.co.jp>
+.\" Updated & Modified 2004-12-31, Yuichi SATO
+.\" Updated 2005-09-06, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
+.\"
+.TH MKNOD 2 2014\-02\-21 Linux "Linux Programmer's Manual"
 .SH 名前
-mknod \- 特殊ファイルや通常のファイルを作成する
+mknod, mknodat \- 特殊ファイルや通常のファイルを作成する
 .SH 書式
 .nf
 \fB#include <sys/types.h>\fP
@@ -26,6 +38,11 @@ mknod \- 特殊ファイルや通常のファイルを作成する
 \fB#include <unistd.h>\fP
 .sp
 \fBint mknod(const char *\fP\fIpathname\fP\fB, mode_t \fP\fImode\fP\fB, dev_t \fP\fIdev\fP\fB);\fP
+.sp
+\fB#include <fcntl.h>           \fP/* AT_* 定数の定義 */
+\fB#include <sys/stat.h>\fP
+.sp
+\fBint mknodat(int \fP\fIdirfd\fP\fB, const char *\fP\fIpathname\fP\fB, mode_t \fP\fImode\fP\fB, dev_t \fP\fIdev\fP\fB);\fP
 .fi
 .sp
 .in -4n
@@ -59,18 +76,37 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOP
 
 \fIpathname\fP が既に存在する場合、またはシンボリックリンクの場合、 この呼び出しは \fBEEXIST\fP エラーで失敗する。
 
+.\"
+.\"
 新しく作成されたノードの所有者はプロセスの実効ユーザ ID にセットされる。 新たに作られたノードを保持する 親ディレクトリの set\-group\-ID
 ビットがセットされていたり、 ファイルシステムが BSD のグループセマンティクスにしたがって
 マウントされている場合には、新しいノードのグループ所有権は親ディレクトリの グループ所有権を継承する (親ディレクトリと同じになる)。
 また、そうでなかった場合の所有グループはプロセスの実効グループ ID となる。
+.SS mknodat()
+\fBmknodat\fP() システムコールは \fBmknod\fP() と全く同様に動作するが、以下で説明する点が異なる。
+
+\fIpathname\fP で指定されたパス名が相対パスの場合、このパス名はファイルディスクリプター \fIdirfd\fP
+が参照するディレクトリに対する相対パスと解釈される (\fBmknod\fP()
+に相対パス名を渡した場合のように、呼び出したプロセスのカレントワーキングディレクトリに対する相対パスではない)。
+
+\fIpathname\fP で指定されたパス名が相対パスで、 \fIdirfd\fP が特別な値 \fBAT_FDCWD\fP の場合、 (\fBmknod\fP()
+と同様に) \fIpathname\fP は呼び出したプロセスのカレントワーキングディレクトリに対する相対パスと解釈される。
+
+\fIpathname\fP で指定されたパス名が絶対パスの場合、 \fIdirfd\fP は無視される。
+.PP
+\fBmknodat\fP() の必要性についての説明については \fBopenat\fP(2) を参照。
 .SH 返り値
-\fBmknod\fP()  は成功した場合 0 を、失敗した場合 \-1 を返す (失敗した場合 \fIerrno\fP がエラーの内容にしたがってセットされる)。
+\fBmknod\fP() と \fBmknodat\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 がシンボリックリンクである場合も含まれる
 (シンボリックリンクがリンク切れか (dangling) どうかは関係ない)。
@@ -100,7 +136,7 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOP
 \fIpathname\fP 中のディレクトリ要素が、実際にはディレクトリでない。
 .TP 
 \fBEPERM\fP
-.\" For UNIX domain sockets and regular files, EPERM is only returned in
+.\" For UNIX domain sockets and regular files, EPERM is returned only in
 .\" Linux 2.2 and earlier; in Linux 2.4 and later, unprivileged can
 .\" use mknod() to make these files.
 \fImode\fP は通常のファイル・FIFO (名前付きパイプ)・UNIX ドメインソケット以外を 作成するようにセットされているが、実行者が特権
@@ -109,11 +145,24 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOP
 .TP 
 \fBEROFS\fP
 \fIpathname\fP が読み出し専用ファイルシステム上のファイルを指している。
+.PP
+\fBmknodat\fP() では以下のエラーも発生する。
+.TP 
+\fBEBADF\fP
+\fIdirfd\fP が有効なファイルディスクリプタでない。
+.TP 
+\fBENOTDIR\fP
+\fIpathname\fP が相対パスで、 \fIdirfd\fP がディレクトリ以外のファイルを参照しているファイルディスクリプタである。
+.SH バージョン
+\fBmknodat\fP()  はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサポートはバージョン 2.4 で glibc
+に追加された。
 .SH 準拠
 .\" The Linux version differs from the SVr4 version in that it
 .\" does not require root permission to create pipes, also in that no
 .\" EMULTIHOP, ENOLINK, or EINTR error is documented.
-SVr4, 4.4BSD, POSIX.1\-2001 (下記も参照).
+\fBmknod\fP(): SVr4, 4.4BSD, POSIX.1\-2001 (下記も参照), POSIX.1\-2008.
+
+\fBmknodat\fP(): POSIX.1\-2008.
 .SH 注意
 POSIX.1\-2001 では次のように書いている: 「\fBmknod\fP()  の唯一の移植性のある使用法は、FIFO
 スペシャルファイルを作成することである。 \fImode\fP が \fBS_IFIFO\fP ではない場合、または \fIdev\fP が 0 ではない場合、
@@ -121,10 +170,15 @@ POSIX.1\-2001 では次のように書いている: 「\fBmknod\fP()  の唯
 を使用すべきではない。この目的のために特別に定義された関数である \fBmkfifo\fP()  を使用すべきである。
 
 .\" and one should make UNIX domain sockets with socket(2) and bind(2).
-Linux では、ディレクトリを作成するために この呼び出しを使用することはできない。 ディレクトリは \fBmkdir\fP(2)  で作成すべきである。
+Linux では、ディレクトリを作成するために \fBmknod\fP() を使用することはできない。 ディレクトリは \fBmkdir\fP(2)
+で作成すべきである。
 
-NFS を実現しているプロトコルには多くの不備が存在し、 それらのいくつかは \fBmknod\fP()  に影響を与える。
+NFS を実現しているプロトコルには多くの不備が存在し、 それらのいくつかは \fBmknod\fP() と \fBmknodat\fP() に影響を与える。
 .SH 関連項目
 \fBchmod\fP(2), \fBchown\fP(2), \fBfcntl\fP(2), \fBmkdir\fP(2), \fBmknodat\fP(2),
 \fBmount\fP(2), \fBsocket\fP(2), \fBstat\fP(2), \fBumask\fP(2), \fBunlink\fP(2),
 \fBmakedev\fP(3), \fBmkfifo\fP(3), \fBpath_resolution\fP(7)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.67 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。