Provided by: manpages-ja-dev_0.5.0.0.20140515+dfsg-2_all
名前
socketpair - 接続されたソケットのペアを作成する
書式
#include <sys/types.h> /* 「注意」参照 */ #include <sys/socket.h> int socketpair(int domain, int type, int protocol, int sv[2]);
説明
socketpair() は、指定されたドメイン domain に指定された種類 type で名前のないソケットの接 続されたペアを作成する。 protocol が指定されると、このプロトコルを用いる。 これらの引き数 の詳細は socket(2) を参照のこと。 新しいソケットの参照に使用するディスクリプタ (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) だけである。 (ほとんどの実装で同じ制限がある) Linux 2.6.27 以降では、 socketpair() は、フラグ SOCK_NONBLOCK と SOCK_CLOEXEC に対応して いる。フラグの説明は socket(2) を参照のこと。 POSIX.1-2001 では <sys/types.h> のインクルードは必須とされておらず、 Linux ではこのヘッダ ファイルは必要ではない。 しかし、歴史的には、いくつかの実装 (BSD 系) でこのヘッダファイル が 必要であり、移植性が必要なアプリケーションではこのファイルを インクルードするのが賢明で あろう。
関連項目
pipe(2), read(2), socket(2), write(2), socket(7), unix(7)
この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.65 の一部 である。プロジェクト の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。