Manpages

名 前

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_NONBLOCKSOCK_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.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。