|
Beschreibung
Die Funktion bind() ordnet einem mit der Funktion socket() erzeugten, zunächst namenlosen Socket einen Namen zu. Nachdem ein Socket mit der Funktion socket() erzeugt worden ist, existiert dieser Socket zwar innerhalb eines Namensbereichs (Adressfamilie), hat aber noch keinen Namen.
Der Parameter s bezeichnet den Socket, dem mit bind() ein Name zugeordnet werden soll.
name zeigt auf den Namen (Adresse), der dem Socket zugeordnet wird.
namelen spezifiziert die Länge der Datenstruktur, die den Namen beschreibt.
Returnwert
0:
Bei Erfolg.
-1:
Bei Fehler. errno wird gesetzt, um den Fehler anzuzeigen.
Fehler
EACCES
Der angegebene Name ist geschützt, und der aufrufende Benutzer hat nicht die Berechtigung, darauf zuzugreifen.
EADDRINUSE
Der angegebene Name wird bereits benutzt.
EADDRNOTAVAIL
Der angegebene Name kann vom lokalen System nicht an den Socket gebunden werden (siehe auch "Abhängigkeiten vom BS2000-Transportsystem BCAM").
EAFNOSUPPORT
Die angegebene Adressfamilie stimmt nicht mit der Adressfamilie des Sockets überein.
EBADF
s ist kein gültiger Deskriptor.
EFAULT
name zeigt nicht auf den beschreibbaren Teil des Benutzer-Adressbereichs.
EINVAL
Dem Socket ist bereits ein Name zugeordnet oder namelen hat nicht die Größe einer gültigen Adresse für die angegebene Adressfamilie.
ENETDOWN
Die Verbindung zum Netzwerk ist nicht mehr aktiv.
ENOBUFS
Die Ressourcen reichen für die Ausführung von bind() nicht aus.
ENOTSOCK
Der Deskriptor referenziert eine Datei, keinen Socket.
Wenn AF_UNIX die Adressfamilie des Sockets ist, kann die Ausführung von bind() auch aus folgenden Gründen zu einem Fehler führen:
EACCES
Der angegebene Name ist geschützt, oder für den angegebenen Namen hat der aufrufende Benutzer keine Schreibberechtigung.
EDESTADDRREQ
Der Parameter name ist der Null-Zeiger.
ENAMETOOLONG
Eine Komponente eines Pfadnamens überschreitet NAME_MAX Zeichen, oder der gesamte Pfadname ist länger als PATH_MAX Zeichen.
ENOENT
Eine Komponente des Pfadnamens verweist auf eine nicht vorhandene Datei, oder der Pfadname ist leer.
ENOTDIR
Eine Komponente im Pfadnamen ist kein Verzeichnis.