socketpair(2) | System Calls Manual | socketpair(2) |
ИМЯ
socketpair - создает пару присоединённых сокетов
БИБЛИОТЕКА
Стандартная библиотека языка C (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
- Заданный протокол не поддерживается на этой машине.
ВЕРСИИ
В Linux единственными поддерживаемыми доменами для этого вызова являются AF_UNIX (или его синоним AF_LOCAL) и AF_TIPC (начиная с Linux 4.12).
СТАНДАРТЫ
POSIX.1-2008.
ИСТОРИЯ
POSIX.1-2001, 4.4BSD.
socketpair() first appeared in 4.2BSD. It is generally portable to/from non-BSD systems supporting clones of the BSD socket layer (including System V variants).
Начиная с Linux 2.6.27, в аргументе type вызова socketpair() поддерживаются флаги SOCK_NONBLOCK и SOCK_CLOEXEC, описанные в socket(2).
СМОТРИТЕ ТАКЖЕ
ПЕРЕВОД
Русский перевод этой страницы руководства разработал(и) Alexander Golubev <fatzer2@gmail.com>, Azamat Hackimov <azamat.hackimov@gmail.com>, Hotellook, Nikita <zxcvbnm3230@mail.ru>, Spiros Georgaras <sng@hellug.gr>, Vladislav <ivladislavefimov@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>
Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.
Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков.
2 мая 2024 г. | Справочные страницы Linux 6.9.1 |