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ă.

VERSIUNI
Î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).

STANDARDE
POSIX.1-2008.

ISTORIC
POSIX.1-2001, 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).

Î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.