socketpair(2) Créer une paire de sockets connectées

SYNOPSIS

#include <sys/types.h> /* Consultez NOTES */
#include <sys/socket.h>

int socketpair(int domain, int type, int protocol, int sv[2]);

DESCRIPTION

La fonction socketpair() crée une paire de sockets connectées, sans noms, dans le domaine de communication domain, du type indiqué, en utilisant le protocole optionnel protocol. Pour plus de détails sur ces paramètres, consultez socket(2).

Les descripteurs correspondant aux deux sockets sont placés dans sv[0] et sv[1]. Les deux sockets ne sont pas différenciables.

VALEUR RENVOYÉE

S'il réussit, cet appel système renvoie 0. S'il échoue, il renvoie -1 et remplit errno en conséquence.

ERREURS

EAFNOSUPPORT
La famille de communication n'est pas supportée sur cette machine.
EFAULT
sv pointe en dehors de l'espace d'adressage accessible.
EMFILE
Trop de descripteurs de fichier utilisés par le processus en cours.
ENFILE
La limite du nombre total de fichiers ouverts sur le système a été atteinte.
EOPNOTSUPP
La protocole de communication mentionné ne permet pas la création d'une paire de sockets.
EPROTONOSUPPORT
La protocole de communication n'est pas supportée sur cette machine.

CONFORMITÉ

BSD 4.4, POSIX.1-2001. La fonction socketpair() est apparue dans BSD 4.2. Elle est généralement portable de/vers les systèmes non-BSD supportant les clones des sockets BSD (y compris les variantes de System V).

NOTES

Sous Linux, le seul domaine supportant cet appel est AF_UNIX (ou le synonyme, AF_LOCAL). (La plupart des implémentations ont la même restriction).

Depuis Linux 2.6.27, socketpair() prend en charge les attributs SOCK_NONBLOCK et SOCK_CLOEXEC décrits dans socket(2).

POSIX.1-2001 ne requiert pas l'inclusion de <sys/types.h>, et cet en-tête n'est pas nécessaire sous Linux. Cependant, il doit être inclus sous certaines implémentations historiques (BSD), et les applications portables devraient probablement l'utiliser.

COLOPHON

Cette page fait partie de la publication 3.65 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION

Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

Christophe Blaess <http://www.blaess.fr/christophe/> (1996-2003), Alain Portal <http://manpagesfr.free.fr/> (2003-2006). Julien Cristau et l'équipe francophone de traduction de Debian (2006-2009).

Veuillez signaler toute erreur de traduction en écrivant à <[email protected]> ou par un rapport de bogue sur le paquet manpages-fr.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C <section> <page_de_man> ».