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
- 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
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.
2 mai 2024 | Pagini de manual de Linux 6.9.1 |