SOCKETPAIR(2)

名称
socketpair - 接続されたソケットのペアの作成

ライブラリ
libc

書式
<sys/types.h> <sys/socket.h> int socketpair(int d, int type, int protocol, int *sv)

解説
socketpair() システムコールは、任意に指定された protocol を使用し、指定された type の、名前を持たない、接続されたソケットのペアを、指定されたドメイン d に作成します。 このとき、ペアは指定できません。 新しいソケットの参照に使用された記述子は、 sv[0] と sv[1] に戻されます。 2 つのソケットは区別できません。

戻り値

エラー
以下のような場合、処理を失敗します:

[EMFILE]
    プロセスで使用されている記述子が多すぎます。

[EAFNOSUPPORT]
    指定されたアドレスファミリが、この機械でサポートされていません。

[EPROTONOSUPPORT]
    指定したプロトコルが、この機械でサポートされていません。

[EOPNOTSUPP]
    指定したプロトコルでの、ソケットペアの作成がサポートされていません。

[EFAULT]
    アドレス sv が、プロセスアドレス空間の有効な部分を指定していません。

関連項目
pipe(2), read(2), write(2)

バグ
この呼び出しは、現在のところ UNIX ドメインのみで実装されています。

歴史
socketpair() システムコールは 4.2BSD で登場しました。