Subroutine socketpair

Zweck

Erstellt ein Paar verbundener Sockets.

Bibliothek

Standard-C-Bibliothek (libc.a)

Syntax

#include <sys/socket.h>
int socketpair (Domain, Type, Protocol, SocketVector[0])
int  Domain,  Type,  Protocol;
int  SocketVector[2];

Beschreibung

Die Subroutine Socketpaar erstellt ein nicht benanntes Paar verbundener Sockets in einer angegebenen Domäne eines angegebenen Typs und verwendet das optional angegebene Protokoll. Die beiden Sockets sind identisch.

Anmerkung: Erstellen Sie Sockets mit dieser Subroutine nur in der AF_UNIX -Protokollfamilie.

Die Deskriptoren, mit denen die neuen Sockets referenziert werden, werden in den Parametern SocketVector[0] und SocketVector[1] zurückgegeben.

Die Datei /usr/include/sys/socket.h enthält die Definitionen für Socketdomänen, -typen und -protokolle.

Alle Anwendungen, die die Subroutine Socketpaar enthalten, müssen mit dem Makro _BSD-Datentabelle kompiliert werden, das auf den Wert 43 oder 44 gesetzt ist. Socketanwendungen müssen die BSD-Bibliothek libbsd.a enthalten.

Parameter

Element Beschreibung
Domäne Gibt die Kommunikationsdomäne an, in der die Sockets erstellt werden. Diese Subroutine erstellt keine Sockets in der Internetdomäne.
Typ Gibt die vom Socket verwendete Kommunikationsmethode an ( SOCK_DGRAM oder SOCK_DATENSTROM).
Protokoll Verweist auf eine optionale Kennung, mit der angegeben wird, welcher Standardsatz von Regeln (z. B. UDP/IP und TCP/IP) die Datenübertragung regelt.
SocketVector Verweist auf einen Vektor mit zwei Elementen, der die ganzzahligen Deskriptoren eines Paares erstellter Sockets enthält

Rückgabewerte

Nach erfolgreicher Beendigung gibt die Subroutine Socketpaar den Wert 0 zurück.

Wenn die Subroutine Socketpaar nicht erfolgreich ist, führt der Subroutinenhandler folgende Funktionen aus:

  • Gibt den Wert -1 an das aufrufende Programm zurück.
  • Verschiebt einen Fehlercode, der den spezifischen Fehler angibt, in die globale Variable Fehlernummer .

Fehlercodes

Wenn die Subroutine Socketpaar nicht erfolgreich ist, wird einer der folgenden Fehlercodes zurückgegeben:

Fehler Beschreibung
EAFNOUNTERSTÜTZUNG Die Adressen in der angegebenen Adressfamilie können mit diesem Socket nicht verwendet werden.
EFAULT Der Parameter SocketVector befindet sich nicht in einem beschreibbaren Teil des Benutzeradressraums.
EMDATEI Dieser Prozess hat zu viele verwendete Deskriptoren.
ENDATEI Die maximal zulässige Anzahl von Dateien ist momentan geöffnet.
ENOBUFS Im System waren nicht genügend Ressourcen verfügbar, um die Operation auszuführen.
EOPNOTSUPP Das angegebene Protokoll lässt die Erstellung von Socketpaaren nicht zu.
EPROTONOUNTERSTÜTZUNG Das angegebene Protokoll kann auf diesem System nicht verwendet werden.
PROTOTYP Der Socket-Typ wird vom Protokoll nicht unterstützt.