socketpair サブルーチン

目的

接続されたソケットのペアを作成します。

ライブラリー

標準 C ライブラリー (libc.a)

構文

#include <sys/socket.h>
int socketpair (Domain, Type, Protocol, SocketVector[0])
int  Domain,  Type,  Protocol;
int  SocketVector[2];

説明

靴下 サブルーチンは、指定されたドメイン、指定されたタイプ、およびオプションで指定されたプロトコルを使用して、接続されたソケットの名前なしペアを作成します。 2 つのソケットは同一です。

注: AF_UNIX (UNIX) プロトコル・ファミリーでのみ、このサブルーチンを使用してソケットを作成します。

新しいソケットの参照に使用されるディスクリプタは、 SocketVector[0]と SocketVector[1]パラメータで返される。

/usr/include/sys/socket.h ファイルには、ソケット・ドメイン、タイプ、およびプロトコルの定義が含まれています。

靴下 サブルーチンを含むすべてのアプリケーションは、43 または 44 の値に設定された BSD (_BSD) マクロを使用してコンパイルする必要があります。 ソケット・アプリケーションには、BSD libbsd.a ライブラリーを組み込む必要があります。

パラメーター

項目 説明
ドメイン ソケットが作成される通信ドメインを指定します。 このサブルーチンは、インターネット・ドメインにソケットを作成しません。
Type ソケットが使用する通信方式 ( _ 翻訳不要 _SOCK_DGRAM または SOCK_ ストリーム) を指定します。
プロトコル データの転送を制御する規則の標準セット ( UDP/IP および TCP/IP など) を指定するために使用されるオプションの ID を指します。
SocketVector 作成されたソケットのペアの整数記述子を含む 2 つのエレメントからなるベクトルを指します。

戻り値

正常終了すると、 靴下 サブルーチンは値 0 を戻します。

靴下 サブルーチンが失敗すると、サブルーチン・ハンドラーは以下の関数を実行します。

  • 呼び出したプログラムに-11を返す。
  • 特定のエラーを示すエラー・コードを エラー番号 グローバル変数に移動します。

エラー・コード

靴下 サブルーチンが失敗すると、以下のエラー・コードのいずれかを戻します。

エラー 説明
EAFNOSUPPORT 指定されたアドレス・ファミリーのアドレスは、このソケットでは使用できません。
EFAULT SocketVector パラメーターは、ユーザー・アドレス・スペースの書き込み可能部分にはありません。
EMFILE このプロセスには使用中の記述子が多すぎます。
ENFILE 許可されている最大数のファイルが現在オープンされています。
ENOBUFS 操作を実行するための十分なリソースがシステムにありませんでした。
EOPNOTSUPP 指定されたプロトコルは、ソケット・ペアの作成を許可しません。
EPROTONOSUPPORT 指定されたプロトコルは、このシステムでは使用できません。
EPROTOTYPE ソケット・タイプがプロトコルでサポートされません。