ИМЯ

socketpair - создает пару присоединённых сокетов

LIBRARY

Standard C library ( libc, -lc)

СИНТАКСИС

#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 to indicate the error, 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
Было достигнуто ограничение по количеству открытых файловых дескрипторов на процесс.
ENFILE
Достигнуто максимальное количество открытых файлов в системе.
EOPNOTSUPP
Заданный протокол не поддерживает создание пар сокетов.
EPROTONOSUPPORT
Заданный протокол не поддерживается на этой машине.

СТАНДАРТЫ

POSIX.1-2001, POSIX.1-2008, 4.4BSD. Вызов socketpair() впервые появился в 4.2BSD. Обычно он переносим в/из не-BSD систем на уровне сокетов BSD (включая варианты System V).

ЗАМЕЧАНИЯ

В Linux единственными поддерживаемыми доменами для этого вызова являются AF_UNIX (или его синоним AF_LOCAL) и AF_TIPC (начиная с Linux 4.12).
Начиная с Linux 2.6.27, в аргументе type вызова socketpair() поддерживаются флаги SOCK_NONBLOCK и SOCK_CLOEXEC, описанные в socket(2).

СМ. ТАКЖЕ

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

ПЕРЕВОД

Русский перевод этой страницы руководства был сделан Alexander Golubev <[email protected]>, Azamat Hackimov <[email protected]>, Hotellook, Nikita <[email protected]>, Spiros Georgaras <[email protected]>, Vladislav <[email protected]>, Yuri Kozlov <[email protected]> и Иван Павлов <[email protected]>
Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.
Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на [email protected]

Recommended readings

Pages related to socketpair you should read also: