OSDN Git Service

Update releases for LDP 3.68
[linuxjm/LDP_man-pages.git] / release / man2 / mknod.2
index a66e4d3..10fe3b6 100644 (file)
@@ -1,6 +1,7 @@
 .\" This manpage is Copyright (C) 1992 Drew Eckhardt;
 .\"             and Copyright (C) 1993 Michael Haardt
-.\"             and Copyright (C) 1993,1994 Ian Jackson.
+.\"             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
 .\" This file was generated with po4a. Translate the source file.
 .\"
 .\"*******************************************************************
-.TH MKNOD 2 2013\-01\-27 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
@@ -27,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
@@ -60,12 +76,28 @@ _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
@@ -73,8 +105,7 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOP
 (\fBpath_resolution\fP(7)  も参照すること)。
 .TP 
 \fBEDQUOT\fP
-The user's quota of disk blocks or inodes on the file system has been
-exhausted.
+ディスクブロックか inode がそのファイルシステムのユーザクォータに達していた。
 .TP 
 \fBEEXIST\fP
 \fIpathname\fP がすでに存在する。 これには \fIpathname\fP がシンボリックリンクである場合も含まれる
@@ -114,11 +145,24 @@ exhausted.
 .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 ではない場合、
@@ -126,14 +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.51 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.68 の一部
 である。プロジェクトの説明とバグ報告に関する情報は
 http://www.kernel.org/doc/man\-pages/ に書かれている。