socketpair(2) zwei verbundene Sockets erstellen

ÜBERSICHT

#include <sys/types.h> /* Siehe ANMERKUNGEN */
#include <sys/socket.h>

int socketpair(int domain, int typ, int protokoll, int sv[2]);

BESCHREIBUNG

Der Aufruf socketpair() erstellt zwei unbenannte, verbundene Sockets in der angegebenen domain vom angegebenen typ und benutzt dabei das optional angegebene protokoll. Weitere Einzelheiten über diese Argumente finden Sie unter socket(2).

Die Dateideskriptoren, die auf die neuen Sockets verweisen, werden in sv[0] und sv[1] zurückgegeben. Die beiden Sockets sind nicht zu unterscheiden.

RÜCKGABEWERT

Bei Erfolg wird Null zurückgegeben. Bei einem Fehler wird -1 zurückgegeben und errno entsprechend gesetzt.

Unter Linux (und anderen Systemen) verändert socketpair() sv beim Fehlschlag nicht. Eine Anforderung, dieses Verhalten zu standardisieren, wurde in POSIX.1-2016 hinzugefügt.

FEHLER

EAFNOSUPPORT
Die angegebene Adressfamilie wird auf dieser Maschine nicht unterstützt.
EFAULT
Die Adresse sv gibt keinen gültigen Teil des Prozess-Adressraums an.
EMFILE
Die Beschränkung pro-Prozess der Anzahl offener Datei-Deskriptoren wurde erreicht.
ENFILE
Die systemweite Beschränkung für die Gesamtzahl offener Dateien wurde erreicht.
EOPNOTSUPP
Das angegebene Protokoll unterstützt nicht das Anlegen von Socket-Paaren.
EPROTONOSUPPORT
Das angegebene Protokoll wird auf dieser Maschine nicht unterstützt.

KONFORM ZU

POSIX.1-2001, POSIX.1-2008, 4.4BSD. socketpair() erschien erstmalig in 4.2BSD. Er ist allgemein nach/von Nicht-BSD-Systemen portierbar, die das Klonen der BSD-Socket-Ebene unterstützen (einschließlich System-V-Varianten).

ANMERKUNGEN

Auf Linux ist die einzige unterstützte Domain für diesen Aufruf AF_UNIX (oder gleichbedeutend AF_LOCAL). (Die meisten Implementierungen haben die gleiche Einschränkung.)

Seit Linux 2.6.27 unterstützt socketpair() die in socket(2) beschriebenen Schalter SOCK_NONBLOCK und SOCK_CLOEXEC im Argument type.

POSIX.1 erfordert nicht, dass <sys/types.h> eingebunden wird. Diese Header-Datei ist in Linux nicht erforderlich. Allerdings benötigen einige historische Implementierungen (BSD) diese Header-Datei. Es wird empfohlen, sie für portierbare Anwendungen einzubinden.

KOLOPHON

Diese Seite ist Teil der Veröffentlichung 4.06 des Projekts Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Chris Leick <[email protected]> und Mario Blättermann <[email protected]> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an <[email protected]>.