socketpair - zwei verbundene Sockets erstellen
Standard-C-Bibliothek (
libc,
-lc)
#include <sys/socket.h>
int socketpair(int domain, int typ, int protokoll, int sv[2]);
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.
Bei Erfolg wird Null zurückgegeben. Bei einem Fehler wird -1
zurückgegeben,
errno gesetzt, um den Fehler anzuzeigen, und
sv verbleibt unverändert.
Unter Linux (und anderen Systemen) verändert
socketpair()
sv beim Fehlschlag nicht. Eine Anforderung, dieses Verhalten zu
standardisieren, wurde in POSIX.1-2008 TC2 hinzugefügt.
- 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.
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).
Auf Linux sind die einzigen unterstützten Domains für diesen
Aufruf
AF_UNIX (oder gleichbedeutend
AF_LOCAL) und (seit Linux
4.12)
AF_TIPC.
Seit Linux 2.6.27 unterstützt
socketpair() die in
socket(2)
beschriebenen Schalter
SOCK_NONBLOCK und
SOCK_CLOEXEC im
Argument
type.
pipe(2),
read(2),
socket(2),
write(2),
socket(7),
unix(7)
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 die
Mailingliste
der Übersetzer