名前
socketpair - 接続されたソケット (socket) のペアを作成する
書式
#include <sys/types.h> #include <sys/socket.h>
int socketpair(int d, int type, int protocol, int sv[2]);
説明
socketpair() は、指定されたドメイン d、 指定された種類 type で名前のないソケットの接続されたペアを作成する。 protocol が指定されると、このプロトコルを用いる。 新しいソケットの参照に使用するディスクリプタ (descriptor) が sv[0] と sv[1] に返される。 二つのソケットは全く同じである。
返り値
成功した場合はゼロを返す、エラーの場合は -1 を返し、 errno が適切に設定される。
エラー
EAFNOSUPPORT | |
このマシンでは指定されたアドレス・ファミリがサポートされていない。 | |
EFAULT | アドレス sv がこのプロセスで使えるアドレス空間を指定していない。 |
EMFILE | このプロセスが使用しているディスクリプタの数が多すぎる。 |
ENFILE | オープンされたファイルの総数がシステム全体の上限に達した。 |
EOPNOTSUPP | |
指定されたプロトコルではソケットのペアの作成がサポートされていない。 | |
EPROTONOSUPPORT | |
このマシンでは指定されたプロトコルがサポートされていない。 | |
準拠
4.4BSD, POSIX.1-2001. socketpair() 関数コールは 4.2BSD で現われた。一般に (System V の変種を含めて) BSD のソケット層のクローンをサポートしている、BSD 以外のシステムと、 互いに移植性がある。
注意
Linux では、この関数でサポートされているドメインは AF_UNIX (または同義語である AF_LOCAL) だけである。 (ほとんどの実装で同じ制限がある)