socketpair(2)

NUME
socketpair - creează o pereche de socluri conectate

BIBLIOTECA
Biblioteca C standard (libc, -lc)

REZUMAT
#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

EAFNOSUPPORT
    Familia de adrese specificată nu este admisă pe această mașină.

EFAULT
    Adresa sv nu specifică o parte validă a spațiului de adrese al procesului.

EMFILE
    Limita per proces a numărului de descriptori de fișiere deschise a fost atinsă.

ENFILE
    Limita la nivel de sistem a numărului total de fișiere deschise a fost atinsă.

EOPNOTSUPP
    Protocolul specificat nu acceptă crearea de perechi de socluri.

EPROTONOSUPPORT
    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 creată de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) 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.