socketpair - Créer une paire de sockets connectés
Bibliothèque C standard (
libc,
-lc)
#include <sys/socket.h>
int socketpair(int domaine, int type, int protocole, int sv[2]);
La fonction
socketpair() crée une paire de sockets
connectés sans nom dans le domaine de communication
domaine, du
type indiqué, en utilisant le protocole optionnel
protocole. Pour plus de détails sur ces paramètres,
consultez
socket(2).
Les descripteurs de fichier correspondant aux deux nouveaux sockets sont
placés dans
sv[0] et
sv[1]. Les deux sockets ne sont pas
différenciables.
S'il réussit, cet appel système renvoie
0. S'il
échoue, il renvoie
-1,
errno est positionné pour
indiquer l'erreur et
sv est laissé inchangé.
Sous Linux (et d'autres systèmes),
socketpair() ne modifie pas
sv s'il échoue. Une exigence pour standardiser ce comportement a
été ajoutée à POSIX.1-2008 TC2.
- EAFNOSUPPORT
- La famille de communication n'est pas prise en charge sur
cette machine.
- EFAULT
- L'adresse sv pointe en dehors de l'espace
d'adressage accessible.
- EMFILE
- La limite du nombre de descripteurs de fichiers par
processus a été atteinte.
- ENFILE
- La limite du nombre total de fichiers ouverts pour le
système entier a été atteinte.
- EOPNOTSUPP
- Le protocole de communication mentionné ne permet
pas la création d'une paire de sockets.
- EPROTONOSUPPORT
- Le protocole de communication n'est pas pris en charge sur
cette machine.
POSIX.1-2001, POSIX.1-2008, 4.4BSD. La fonction
socketpair() est apparue
dans BSD 4.2. Elle est généralement portable de/vers les
systèmes non-BSD prenant en charge les clones des sockets BSD (y
compris les variantes de System V).
Sous Linux, les seuls domaines prenant en charge cet appel sont
AF_UNIX
(ou le synonyme,
AF_LOCAL) et
AF_TIPC (depuis
Linux 4.12).
Depuis Linux 2.6.27,
socketpair() prend en charge les attributs
SOCK_NONBLOCK et
SOCK_CLOEXEC dans l'argument
type, comme
décrit dans
socket(2).
pipe(2),
read(2),
socket(2),
write(2),
socket(7),
unix(7)
La traduction française de cette page de manuel a été
créée par Christophe Blaess
<
https://www.blaess.fr/christophe/>, Stéphan Rafin
<
[email protected]>, Thierry Vignaud
<
[email protected]>, François Micaux, Alain Portal
<
[email protected]>, Jean-Philippe Guérard
<
[email protected]>, Jean-Luc Coulon (f5ibh)
<
[email protected]>, Julien Cristau
<
[email protected]>, Thomas Huriaux <
[email protected]>,
Nicolas François <
[email protected]>, Florentin
Duneau <
[email protected]>, Simon Paillard
<
[email protected]>, Denis Barbier
<
[email protected]>, David Prévot <
[email protected]>,
Cédric Boutillier <
[email protected]>,
Frédéric Hantrais <
[email protected]> et Jean-Philippe
MENGUAL <
[email protected]>
Cette traduction est une documentation libre ; veuillez vous reporter
à la
GNU
General Public License version 3 concernant les conditions de copie
et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
[email protected]