OSDN Git Service

(split) LDP: Update release pages based on LDP 3.54 release
[linuxjm/LDP_man-pages.git] / release / man2 / dup.2
index e4ef4ae..386ee4c 100644 (file)
@@ -1,9 +1,8 @@
-.\" Hey Emacs! This file is -*- nroff -*- source.
-.\"
 .\" This manpage is Copyright (C) 1992 Drew Eckhardt;
 .\" and Copyright (C) 1993 Michael Haardt, Ian Jackson.
 .\" and Copyright (C) 2005, 2008 Michael Kerrisk <mtk.manpages@gmail.com>
 .\"
+.\" %%%LICENSE_START(VERBATIM)
 .\" Permission is granted to make and distribute verbatim copies of this
 .\" manual provided the copyright notice and this permission notice are
 .\" preserved on all copies.
@@ -23,6 +22,7 @@
 .\"
 .\" Formatted or processed versions of this manual, if unaccompanied by
 .\" the source, must acknowledge the copyright and authors of this work.
+.\" %%%LICENSE_END
 .\"
 .\" Modified 1993-07-21, Rik Faith <faith@cs.unc.edu>
 .\" Modified 1994-08-21, Michael Chastain <mec@shell.portal.com>:
 .\"     details for dup2().
 .\" 2008-10-09, mtk: add description of dup3()
 .\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.\"
 .\" Japanese Version Copyright (c) 1996 Takeshi Ueno
 .\"         all rights reserved.
 .\" Translated 1996-07-03, Takeshi Ueno <tueno@vio.co.jp>
 .\" Updated 2008-02-10, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v2.77
 .\" Updated 2008-11-09, Akihiro MOTOKI, LDP v3.13
 .\"
-.TH DUP 2 2010-09-10 "Linux" "Linux Programmer's Manual"
-.SH Ì¾Á°
-dup, dup2, dup3 \- ¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊ£À½¤¹¤ë
-.SH ½ñ¼°
+.TH DUP 2 2012\-02\-14 Linux "Linux Programmer's Manual"
+.SH 名前
+dup, dup2, dup3 \- ファイル・ディスクリプタを複製する
+.SH 書式
 .nf
-.B #include <unistd.h>
+\fB#include <unistd.h>\fP
 .sp
-.BI "int dup(int " oldfd );
-.BI "int dup2(int " oldfd ", int " newfd );
+\fBint dup(int \fP\fIoldfd\fP\fB);\fP
+\fBint dup2(int \fP\fIoldfd\fP\fB, int \fP\fInewfd\fP\fB);\fP
 .sp
-.BR "#define _GNU_SOURCE" "             /* feature_test_macros(7) »²¾È */"
-.B #include <unistd.h>
+\fB#define _GNU_SOURCE\fP             /* feature_test_macros(7) 参照 */
+\fB#include <fcntl.h>\fP              /* 定数 O_* の定義の取得 */
+\fB#include <unistd.h>\fP
 .sp
-.BI "int dup3(int " oldfd ", int " newfd ", int " flags );
+\fBint dup3(int \fP\fIoldfd\fP\fB, int \fP\fInewfd\fP\fB, int \fP\fIflags\fP\fB);\fP
 .fi
-.SH ÀâÌÀ
-¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿
-.I oldfd
-¤ÎÊ£À½¤òºî¤ë¡£
+.SH 説明
+これらのシステムコールは、ファイル・ディスクリプタ \fIoldfd\fP の複製を作る。
 
-.BR dup ()
-¤ÏºÇ¤â¾®¤µ¤¤ÈÖ¹æ¤Î̤»ÈÍѤΥǥ£¥¹¥¯¥ê¥×¥¿¤ò
-¿·¤·¤¤¥Ç¥£¥¹¥¯¥ê¥×¥¿¤È¤·¤Æ»ÈÍѤ¹¤ë¡£
+\fBdup\fP()  は最も小さい番号の未使用のディスクリプタを 新しいディスクリプタとして使用する。
 
-.BR dup2 ()
-¤Ï
-.I newfd
-¤ò
-.I oldfd
-¤ÎÊ£À½¤È¤·¤ÆºîÀ®¤¹¤ë¡£
-ɬÍפǤ¢¤ì¤ÐºÇ½é¤Ë
-.I newfd
-¤ò¥¯¥í¡¼¥º¤¹¤ë¡£
-°Ê²¼¤ÎÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£
+\fBdup2\fP()  は \fInewfd\fP を \fIoldfd\fP の複製として作成する。 必要であれば最初に \fInewfd\fP をクローズする。
+以下の点に注意すること。
 .IP * 3
-.I oldfd
-¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¾ì¹ç¡¢¤½¤Î¸Æ¤Ó½Ð¤·¤Ï¼ºÇÔ¤·¡¢
-.I newfd
-¤Ï¥¯¥í¡¼¥º¤µ¤ì¤Ê¤¤¡£
+\fIoldfd\fP が有効なファイルディスクリプタでない場合、その呼び出しは失敗し、 \fInewfd\fP はクローズされない。
 .IP *
-.I oldfd
-¤¬Í­¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¡¢
-.I newfd
-¤¬
-.I oldfd
-¤ÈƱ¤¸Ãͤξì¹ç¡¢
-.BR dup2 ()
-¤Ï²¿¤â¤»¤º¡¢
-.I newfd
-¤òÊÖ¤¹¡£
+\fIoldfd\fP が有効なファイルディスクリプタで、 \fInewfd\fP が \fIoldfd\fP と同じ値の場合、 \fBdup2\fP()  は何もせず、
+\fInewfd\fP を返す。
 .PP
-¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¤¤¤º¤ì¤«¤¬À®¸ù¤òÊÖ¤·¤¿¾ì¹ç¤Ë¤Ï¡¢
-¸Å¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤È¿·¤·¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï
-¸ß¤¤¤Ë²Ä´¹¤Ê¤â¤Î¤È¤·¤Æ»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£
-2¤Ä¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏƱ¤¸¥Õ¥¡¥¤¥ëµ­½Ò (description)
-.RB ( open (2)
-»²¾È) ¤ò»²¾È¤·¤Æ¤ª¤ê¡¢¤·¤¿¤¬¤Ã¤Æ¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤ä¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤¬
-¶¦Í­¤µ¤ì¤ë¡£Î㤨¤Ð¡¢°ìÊý¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ
-.BR lseek (2)
-¤ò»È¤Ã¤Æ¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤òÊѹ¹¤·¤¿¾ì¹ç¡¢¤â¤¦°ìÊý¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î
-¥ª¥Õ¥»¥Ã¥È¤âÊѲ½¤¹¤ë¡£
+これらのシステムコールのいずれかが成功を返した場合には、 古いファイル・ディスクリプタと新しいファイル・ディスクリプタは
+互いに可換なものとして使うことができる。 2つのファイル・ディスクリプタは同じファイル記述 (description)  (\fBopen\fP(2)
+参照) を参照しており、したがってファイルオフセットやファイル状態フラグが 共有される。例えば、一方のディスクリプタに対して \fBlseek\fP(2)
+を使ってファイルオフセットを変更した場合、もう一方のディスクリプタの オフセットも変化する。
 
-2¤Ä¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¦¥Õ¥é¥° (close-on-exec flag)
-¤ò¶¦Í­¤·¤Ê¤¤¡£Ê£À½¤µ¤ì¤¿¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î
-close-on-exec flag
-.RB ( fcntl (2)
-»²¾È) ¤Ï off ¤È¤Ê¤ë¡£
+2つのディスクリプタはファイル・ディスクリプタ・フラグ (close\-on\-exec flag)  を共有しない。複製されたディスクリプタの
+close\-on\-exec flag (\fBfcntl\fP(2)  参照) は off となる。
 
-.BR dup3 ()
-¤Ï
-.BR dup2 ()
-¤ÈƱ¤¸¤À¤¬¡¢°Ê²¼¤ÎÅÀ¤¬°Û¤Ê¤ë¡£
+\fBdup3\fP()  は \fBdup2\fP()  と同じだが、以下の点が異なる。
 .IP * 3
-¸Æ¤Ó½Ð¤·¸µ¤¬¡¢¿·¤·¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ
-close-on-exec ¥Õ¥é¥°¤ò¶¯À©Åª¤ËÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
-¤³¤ì¤ò¹Ô¤¦¤Ë¤Ï¡¢
-.I flags
-¤Ë
-.B O_CLOEXEC
-¤ò»ØÄꤹ¤ë¡£
-¤³¤Î¥Õ¥é¥°¤¬Ìò¤ËΩ¤ÄÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢
-.BR open (2)
-¤Î
-.B O_CLOEXEC
-¥Õ¥é¥°¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£
+呼び出し元が、新しいファイル・ディスクリプタに対して close\-on\-exec フラグを強制的に設定することができる。 これを行うには、
+\fIflags\fP に \fBO_CLOEXEC\fP を指定する。 このフラグが役に立つ理由については、 \fBopen\fP(2)  の \fBO_CLOEXEC\fP
+フラグの説明を参照のこと。
 .IP *
 .\" FIXME . To confirm with Al Viro that this was intended, and its rationale
-.I oldfd
-¤¬
-.I newfd
-¤ÈƱ¤¸¾ì¹ç¡¢
-.BR dup3 ()
-¤Ï
-.B EINVAL
-¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë¡£
-.SH ÊÖ¤êÃÍ
-À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¿·¤·¤¤¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£
-¥¨¥é¡¼¤Î¾ì¹ç¡¢\-1 ¤òÊÖ¤·¡¢
-.I errno
-¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£
-.SH ¥¨¥é¡¼
-.TP
-.B EBADF
-.I oldfd
-¤¬¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¤«¡¢
-.I newfd
-¤¬¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤È¤·¤Æµö¤µ¤ì¤ëÈϰϤ«¤é³°¤ì¤Æ¤¤¤ë¡£
-.TP
-.B EBUSY
-(Linux ¤Î¤ß)
-.BR open (2)
-¤ä
-.BR dup ()
-¤È¤Î¶¥¹ç¾õÂ֤ξì¹ç¤Ë¡¢
-.BR dup2 ()
-¤ä
-.BR dup3 ()
-¤Ï¤³¤Î¥¨¥é¡¼¤òÊÖ¤¹¤«¤â¤·¤ì¤Ê¤¤¡£
-.TP
-.B EINTR
-.BR dup2 ()
-¤ä
-.BR dup3 ()
-¤Î¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¡£
-.BR signal (7)
-»²¾È¡£
-.TP
-.B EINVAL
-.RB ( dup3 ())
-.I flags
-¤Ë̵¸ú¤ÊÃͤ¬Æþ¤Ã¤Æ¤¤¤ë¡£
+\fIoldfd\fP が \fInewfd\fP と同じ場合、 \fBdup3\fP()  は \fBEINVAL\fP エラーで失敗する。
+.SH 返り値
+成功すると、これらのシステムコールは新しいディスクリプタを返す。 エラーの場合、\-1 を返し、 \fIerrno\fP を適切に設定する。
+.SH エラー
+.TP 
+\fBEBADF\fP
+\fIoldfd\fP がオープンされたファイル・ディスクリプタでないか、 \fInewfd\fP がファイル・ディスクリプタとして許される範囲から外れている。
+.TP 
+\fBEBUSY\fP
+(Linux のみ)  \fBopen\fP(2)  や \fBdup\fP()  との競合状態の場合に、 \fBdup2\fP()  や \fBdup3\fP()
+はこのエラーを返すかもしれない。
+.TP 
+\fBEINTR\fP
+\fBdup2\fP()  や \fBdup3\fP()  の呼び出しがシグナルにより割り込まれた。 \fBsignal\fP(7)  参照。
+.TP 
+\fBEINVAL\fP
 .\" FIXME . To confirm with Al Viro that this was intended, and its rationale
-¤â¤·¤¯¤Ï¡¢
-.I oldfd
-¤¬
-.I newfd
-¤ÈƱ¤¸¤Ç¤¢¤Ã¤¿¡£
-.TP
-.B EMFILE
-¥×¥í¥»¥¹¤¬¤¹¤Ç¤Ë¥ª¡¼¥×¥ó¤Ç¤­¤ëºÇÂç¿ô¤Þ¤Ç¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿
-¤ò³«¤¤¤Æ¤¤¤Æ¡¢¤µ¤é¤Ë¿·¤·¤¤¤â¤Î¤ò³«¤³¤¦¤È¤·¤¿¡£
-.SH ¥Ð¡¼¥¸¥ç¥ó
-.BR dup3 ()
-¤Ï¥Ð¡¼¥¸¥ç¥ó 2.6.27 ¤Ç Linux ¤ËÄɲ䵤줿¡£
-glibc ¤Ë¤è¤ë¥µ¥Ý¡¼¥È¤Ï¥Ð¡¼¥¸¥ç¥ó 2.9 °Ê¹ß¤ÇÍøÍѤǤ­¤ë¡£
-.SH ½àµò
-.BR dup (),
-.BR dup2 ():
-SVr4, 4.3BSD, POSIX.1-2001.
+(\fBdup3\fP())  \fIflags\fP に無効な値が入っている。 もしくは、 \fIoldfd\fP が \fInewfd\fP と同じであった。
+.TP 
+\fBEMFILE\fP
+プロセスがすでにオープンできる最大数までファイル・ディスクリプタ を開いていて、さらに新しいものを開こうとした。
+.SH バージョン
+\fBdup3\fP()  はバージョン 2.6.27 で Linux に追加された。 glibc によるサポートはバージョン 2.9 以降で利用できる。
+.SH 準拠
+\fBdup\fP(), \fBdup2\fP(): SVr4, 4.3BSD, POSIX.1\-2001.
 
-.BR dup3 ()
-¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£
-.\" SVr4 ¤Ë¤Ï¾¤Ë EINTR, ENOLINK ¥¨¥é¡¼¾õÂ֤ε­½Ò¤¬¤¢¤ë¡£
-.\" POSIX.1 ¤Ë¤Ï¾¤Ë EINTR ¤¬¤¢¤ë¡£
-.\" EBUSY ¤¬ÊÖ¤µ¤ì¤ë¤Î¤Ï Linux Æȼ«¤Î¤â¤Î¤Ç¤¢¤ë¡£
-.SH Ãí°Õ
-.I newfd
-¤¬ÈϰϤòĶ¤¨¤¿»þ¤ËÊÖ¤µ¤ì¤ë¥¨¥é¡¼¤Ï¡¢
-.BR dup2 ()
-¤È
-.BR fcntl( "..., " F_DUPFD ", ..." )
-¤Ç¤Ï°Û¤Ã¤Æ¤¤¤ë¡£
-.BR dup2 ()
-¤¬
-.B F_DUPFD
-¤ÈƱ¤¸¤è¤¦¤Ë
-.B EINVAL
-¤òÊÖ¤¹¥·¥¹¥Æ¥à¤â¤¢¤ë¡£
+.\" SVr4 documents additional
+.\" EINTR and ENOLINK error conditions.  POSIX.1 adds EINTR.
+.\" The EBUSY return is Linux-specific.
+\fBdup3\fP()  は Linux 固有である。
+.SH 注意
+\fInewfd\fP が範囲を超えた時に返されるエラーは、 \fBdup2\fP()  と \fBfcntl(\fP..., \fBF_DUPFD\fP, ...\fB)\fP
+では異っている。 \fBdup2\fP()  が \fBF_DUPFD\fP と同じように \fBEINVAL\fP を返すシステムもある。
 
-.I newfd
-¤¬¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¤È¡¢
-.BR close (2)
-¤·¤¿»þ¤ËÊó¹ð¤µ¤ì¤ë¤Ï¤º¤Î¥¨¥é¡¼¤¬¼º¤ï¤ì¤Æ¤·¤Þ¤¦¡£
-.BR dup2 ()
-¤ä
-.BR dup3 ()
-¤ò»È¤¦Á°¤ËÀ褺
-.I newfd
-¤ò¥¯¥í¡¼¥º¤¹¤ë¤è¤¦¤Ë¤·¤¿Êý¤¬¤¤¤¤¤À¤í¤¦¡£
-.SH ´ØÏ¢¹àÌÜ
-.BR close (2),
-.BR fcntl (2),
-.BR open (2)
+\fInewfd\fP がオープンされていると、 \fBclose\fP(2)  した時に報告されるはずのエラーが失われてしまう。 \fBdup2\fP()  や
+\fBdup3\fP()  を使う前に先ず \fInewfd\fP をクローズするようにした方がいいだろう。
+.SH 関連項目
+\fBclose\fP(2), \fBfcntl\fP(2), \fBopen\fP(2)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.54 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。