Provided by: manpages-ja-dev_0.5.0.0.20221215+dfsg-1_all bug

名前

       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)   を参照のこ
       と。

       The  file  descriptors  used  in  referencing  the  new sockets are returned in sv[0] and sv[1].  The two
       sockets are indistinguishable.

返り値

       On success, zero is returned.  On error, -1 is returned, errno is  set  appropriately,  and  sv  is  left
       unchanged

       On  Linux  (and other systems), socketpair()  does not modify sv on failure.  A requirement standardizing
       this behavior was added in POSIX.1-2008 TC2.

エラー

       EAFNOSUPPORT
              このマシンでは指定されたアドレスファミリーがサポートされていない。

       EFAULT アドレス sv がこのプロセスで使えるアドレス空間を指定していない。

       EMFILE 1プロセスがオープンできるファイルディスクリプター数の上限に達した。

       ENFILE オープンされたファイルの総数がシステム全体の上限に達していた。

       EOPNOTSUPP
              指定されたプロトコルではソケットのペアの作成がサポートされていない。

       EPROTONOSUPPORT
              このマシンでは指定されたプロトコルがサポートされていない。

準拠

       POSIX.1-2001, POSIX.1-2008, 4.4BSD.  socketpair() は 4.2BSD で登場した。一般に (System V  の変種を含めて)
       BSD のソケット層のクローンをサポートしている、BSD 以外のシステムと、 互いに移植性がある。

注意

       On  Linux,  the only supported domains for this call are AF_UNIX (or synonymously, AF_LOCAL)  and AF_TIPC
       (since Linux 4.12).

       Since Linux 2.6.27, socketpair()  supports the SOCK_NONBLOCK and SOCK_CLOEXEC flags in the type argument,
       as described in socket(2).

       POSIX.1 では <sys/types.h> のインクルードは必須とされておらず、 Linux  ではこのヘッダーファイルは必要では
       ない。  しかし、歴史的には、いくつかの実装 (BSD 系) でこのヘッダーファイルが 必要であり、移植性が必要なア
       プリケーションではこのファイルを インクルードするのが賢明であろう。

関連項目

       pipe(2), read(2), socket(2), write(2), socket(7), unix(7)

この文書について

       この man ページは Linux man-pages プロジェクトのリリース 5.10  の一部である。プロジェクトの説明とバグ報告
       に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。

Linux                                              2020-06-09                                      SOCKETPAIR(2)