Scroll to navigation

socketpair(2) System Calls Manual socketpair(2)

NUME

socketpair - creează o pereche de socluri conectate

BIBLIOTECA

Biblioteca C standard (libc, -lc)

SINOPSIS

#include <sys/socket.h>
int socketpair(int domain, int type, int protocol, int sv[2]);

DESCRIERE

Apelul socketpair() creează o pereche nenumită de socluri conectate în domeniul specificat, de tipul specificat și utilizând protocolul specificat opțional. Pentru mai multe detalii privind aceste argumente, a se vedea socket(2).

Descriptorii de fișiere utilizați pentru a face referire la noile socluri sunt returnate în sv[0] și sv[1]. Cele două socluri sunt de nedistins.

VALOAREA RETURNATĂ

În caz de succes, se returnează zero. În caz de eroare, se returnează -1, errno este configurată pentru a indica eroarea, iar sv rămâne neschimbată.

În Linux (și în alte sisteme), socketpair() nu modifică sv în caz de eșec. O cerință care standardizează acest comportament a fost adăugată în POSIX.1-2008 TC2.

ERORI-IEȘIRE

Familia de adrese specificată nu este admisă pe această mașină.
Adresa sv nu specifică o parte validă a spațiului de adrese al procesului.
Limita per proces a numărului de descriptori de fișiere deschise a fost atinsă.
Limita la nivel de sistem a numărului total de fișiere deschise a fost atinsă.
Protocolul specificat nu acceptă crearea de perechi de socluri.
Protocolul specificat nu este acceptat pe această mașină.

STANDARDE

POSIX.1-2001, POSIX.1-2008, 4.4BSD. socketpair() a apărut pentru prima dată în 4.2BSD. În general, este portabil către/de la sisteme non-BSD care acceptă clone ale stratului de soclu BSD (inclusiv variantele System V).

NOTE

În Linux, singurele domenii acceptate pentru acest apel sunt AF_UNIX (sau, ca sinonim, AF_LOCAL) și AF_TIPC (începând cu Linux 4.12).

Începând cu Linux 2.6.27, socketpair() acceptă fanioanele SOCK_NONBLOCK și SOCK_CLOEXEC în argumentul type, așa cum este descris în socket(2).

CONSULTAȚI ȘI

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

TRADUCERE

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

30 octombrie 2022 Pagini de manual de Linux 6.03