EN JA
DUP3(3)
DUP3(3) FreeBSD Library Functions Manual DUP3(3)

名称

dup3既存のファイル記述子を複写する

ライブラリ

Standard C Library (libc, -lc)

書式

#include < fcntl.h>
#include < unistd.h>

int
dup3( int oldd, int newd, int flags);

解説

dup3() 関数は、指定される新しい記述子の値を可能にする間に既存のオブジェクトの記述子を複写します。

新しいファイル記述子の close-on-exec フラグは、 flagsO_CLOEXEC ビットによって決定されます。

olddnewd and flags == 0 であるなら、振る舞いは、 dup2(oldd, newd) と同一です。

oldd == newd であるなら、 dup3() は、 dup2(2) と異なり失敗します。

戻り値

エラーが生じるなら、値 -1 が返されます。外部変数 errno は、エラーの原因を示します。

エラー

dup3() 関数は、次の場合に失敗します:
[ EBADF]
oldd 引数が、有効でアクティブな記述子でないか、または newd 引数が負であるか、または、最大の許可できる記述子の番号を越えています、
[ EINVAL]
oldd 引数が newd 引数と等しい。
[ EINVAL]
flags 引数に、 O_CLOEXEC 以外に設定されたビットがあります。

規格

dup3() 関数は、あらゆる標準に適合しません。

歴史

dup3() 関数は、 FreeBSD 10.0 で登場しました。
August 16, 2013 FreeBSD