.\"
.TH DUP 2 2012\-02\-14 Linux "Linux Programmer's Manual"
.SH 名前
-dup, dup2, dup3 \- ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\82\92è¤\87製ã\81\99ã\82\8b
+dup, dup2, dup3 \- ファイルディスクリプタを複製する
.SH 書式
.nf
\fB#include <unistd.h>\fP
\fBint dup3(int \fP\fIoldfd\fP\fB, int \fP\fInewfd\fP\fB, int \fP\fIflags\fP\fB);\fP
.fi
.SH 説明
-ã\81\93ã\82\8cã\82\89ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ \fIoldfd\fP ã\81®è¤\87製ã\82\92ä½\9cã\82\8bã\80\82
+これらのシステムコールは、ファイルディスクリプタ \fIoldfd\fP の複製を作る。
\fBdup\fP() は最も小さい番号の未使用のディスクリプタを 新しいディスクリプタとして使用する。
\fIoldfd\fP が有効なファイルディスクリプタで、 \fInewfd\fP が \fIoldfd\fP と同じ値の場合、 \fBdup2\fP() は何もせず、
\fInewfd\fP を返す。
.PP
-ã\81\93ã\82\8cã\82\89ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81®ã\81\84ã\81\9aã\82\8cã\81\8bã\81\8cæ\88\90å\8a\9fã\82\92è¿\94ã\81\97ã\81\9få ´å\90\88ã\81«ã\81¯ã\80\81 å\8f¤ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81¨æ\96°ã\81\97ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83»ディスクリプタは
-äº\92ã\81\84ã\81«å\8f¯æ\8f\9bã\81ªã\82\82ã\81®ã\81¨ã\81\97ã\81¦ä½¿ã\81\86ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 2ã\81¤ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81¯å\90\8cã\81\98ã\83\95ã\82¡ã\82¤ã\83«è¨\98è¿° (description) (\fBopen\fP(2)
-参照) を参照しており、したがってファイルオフセットやファイル状態フラグが 共有される。例えば、一方のディスクリプタに対して \fBlseek\fP(2)
+ã\81\93ã\82\8cã\82\89ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81®ã\81\84ã\81\9aã\82\8cã\81\8bã\81\8cæ\88\90å\8a\9fã\82\92è¿\94ã\81\97ã\81\9få ´å\90\88ã\81«ã\81¯ã\80\81 å\8f¤ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81¨æ\96°ã\81\97ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ディスクリプタは
+äº\92ã\81\84ã\81«å\8f¯æ\8f\9bã\81ªã\82\82ã\81®ã\81¨ã\81\97ã\81¦ä½¿ã\81\86ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 2ã\81¤ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81¯å\90\8cã\81\98ã\83\95ã\82¡ã\82¤ã\83«è¨\98è¿° (description) (\fBopen\fP(2) å\8f\82ç\85§)
+を参照しており、したがってファイルオフセットやファイル状態フラグが 共有される。例えば、一方のディスクリプタに対して \fBlseek\fP(2)
を使ってファイルオフセットを変更した場合、もう一方のディスクリプタの オフセットも変化する。
-2ã\81¤ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83»フラグ (close\-on\-exec flag) を共有しない。複製されたディスクリプタの
+2ã\81¤ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿フラグ (close\-on\-exec flag) を共有しない。複製されたディスクリプタの
close\-on\-exec flag (\fBfcntl\fP(2) 参照) は off となる。
\fBdup3\fP() は \fBdup2\fP() と同じだが、以下の点が異なる。
.IP * 3
-å\91¼ã\81³å\87ºã\81\97å\85\83ã\81\8cã\80\81æ\96°ã\81\97ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81«å¯¾ã\81\97ã\81¦ close\-on\-exec ã\83\95ã\83©ã\82°ã\82\92å¼·å\88¶ç\9a\84ã\81«è¨å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 ã\81\93ã\82\8cã\82\92è¡\8cã\81\86ã\81«ã\81¯ã\80\81
+呼び出し元が、新しいファイルディスクリプタに対して close\-on\-exec フラグを強制的に設定することができる。 これを行うには、
\fIflags\fP に \fBO_CLOEXEC\fP を指定する。 このフラグが役に立つ理由については、 \fBopen\fP(2) の \fBO_CLOEXEC\fP
フラグの説明を参照のこと。
.IP *
.SH エラー
.TP
\fBEBADF\fP
-\fIoldfd\fP ã\81\8cã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81§ã\81ªã\81\84ã\81\8bã\80\81 \fInewfd\fP ã\81\8cã\83\95ã\82¡ã\82¤ã\83«ã\83»ディスクリプタとして許される範囲から外れている。
+\fIoldfd\fP ã\81\8cã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81§ã\81ªã\81\84ã\81\8bã\80\81 \fInewfd\fP ã\81\8cã\83\95ã\82¡ã\82¤ã\83«ディスクリプタとして許される範囲から外れている。
.TP
\fBEBUSY\fP
(Linux のみ) \fBopen\fP(2) や \fBdup\fP() との競合状態の場合に、 \fBdup2\fP() や \fBdup3\fP()
(\fBdup3\fP()) \fIflags\fP に無効な値が入っている。 もしくは、 \fIoldfd\fP が \fInewfd\fP と同じであった。
.TP
\fBEMFILE\fP
-ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\81\99ã\81§ã\81«ã\82ªã\83¼ã\83\97ã\83³ã\81§ã\81\8dã\82\8bæ\9c\80大æ\95°ã\81¾ã\81§ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ ã\82\92é\96\8bã\81\84ã\81¦ã\81\84ã\81¦ã\80\81ã\81\95ã\82\89ã\81«æ\96°ã\81\97ã\81\84ã\82\82ã\81®ã\82\92é\96\8bã\81\93ã\81\86ã\81¨ã\81\97ã\81\9fã\80\82
+プロセスがすでにオープンできる最大数までファイルディスクリプタ を開いていて、さらに新しいものを開こうとした。
.SH バージョン
\fBdup3\fP() はバージョン 2.6.27 で Linux に追加された。 glibc によるサポートはバージョン 2.9 以降で利用できる。
.SH 準拠