bind(3N-xs) (X/OPEN SOCKETS) bind(3N-xs)
NAME
bind - Einen Namen an einen Socket binden
SYNTAX
cc [flag ...] file ... -lxnet [library ...]
#include <sys/socket.h>
int bind(int socket, const struct sockaddr *address,
sizet addresslen);
BESCHREIBUNG
Die Funktion bind ordnet einem Socket ohne Namen eine Adresse address
zu. Mit der Funktion socket erstellte Sockets haben zunächst keinen
Namen und werden nur durch ihre Adreßfamilie identifiziert.
Für die Funktion können folgende Argumente angegeben werden:
socket Gibt den Dateideskriptor des Sockets an, der mit
einem Namen verbunden werden soll.
address Zeigt auf eine sockaddr-Struktur mit der Adresse,
die an den Socket gebunden werden soll. Länge und
Format der Adresse sind von der Adreßfamilie des
Sockets abhängig.
addresslen Gibt die Länge der sockaddr-Struktur an, auf die das
Argument address zeigt.
RÜCKGABEWERT
Bei erfolgreicher Ausführung gibt bind 0 zurück. Andernfalls wird -1
zurückgegeben und errno gesetzt, um den Fehler anzuzeigen.
FEHLER
Die Funktion bind schlägt fehl, wenn eine der folgenden Bedingungen
zutrifft:
EBADF Das Argument socket ist kein gültiger Dateideskrip-
tor.
ENOTSOCK Das Argument socket verweist nicht auf einen Socket.
EADDRNOTAVAIL Auf die angegebene Adresse kann von der lokalen
Maschine aus nicht zugegriffen werden.
EADDRINUSE Die angegebene Adresse wird bereits verwendet.
EINVAL Der Socket ist bereits an eine Adresse gebunden, und
das Protokoll unterstützt kein Binden an eine neue
Adresse, oder der Socket wurde bereits geschlossen.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
bind(3N-xs) (X/OPEN SOCKETS) bind(3N-xs)
EACCES Die angegebene Adresse ist geschützt, und der Benut-
zer verfügt nicht über die Berechtigung, den Socket
an diese Adresse zu binden.
EAFNOSUPPORT Die angegebene Adresse ist für die Adreßfamilie des
angegebenen Sockets nicht gültig.
EOPNOTSUPP Der Socket-Typ des angegebenen Sockets unterstützt
kein Binden an eine Adresse.
Ist die Adreßfamilie des Sockets AFUNIX, schlägt bind fehl, wenn eine
der folgenden Bedingungen zutrifft:
EDESTADDRREQ oder EISDIR
Das Argument address ist ein Null-Zeiger.
EACCES Für eine Komponente in der Pfadangabe wird die Such-
berechtigung verweigert, oder für den angeforderten
Namen muß in einem Modus in ein Verzeichnis
geschrieben werden, bei dem die Schreibberechtigung
verweigert wird.
ENOTDIR Eine Komponente in der Pfadangabe von address ist
kein Verzeichnis.
ENAMETOOLONG Eine Komponente eines Pfadnamens überschreitet
{NAMEMAX} Zeichen, oder der gesamte Pfadname ist
länger als {PATHMAX} Zeichen.
ENOENT Eine Komponente des Pfadnamens verweist nicht auf
eine vorhandene Datei, oder der Pfadname ist leer.
ELOOP Bei der Übersetzung des Pfadnamens in address wurden
zu viele symbolische Links gefunden.
EIO Ein E/A-Fehler ist aufgetreten.
EROFS Es wurde versucht, den Namen in einem schreibge-
schützten Dateisystem zu speichern.
Die Funktion bind kann fehlschlagen, wenn eine der folgenden Bedingun-
gen zutrifft:
EINVAL Das Argument addresslen hat eine für die Adreßfami-
lie ungültige Länge.
EISCONN Es besteht bereits eine Verbindung zum Socket.
ENAMETOOLONG Durch die Auflösung des Pfadnamens eines symboli-
schen Links wird ein Zwischenergebnis erzeugt, des-
sen Länge {PATHMAX} überschreitet.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
bind(3N-xs) (X/OPEN SOCKETS) bind(3N-xs)
ENOBUFS Die Ressourcen reichen für die Ausführung des Auf-
rufs nicht aus.
ENOSR Die verfügbaren STREAMS-Ressourcen reichen für die
Ausführung der Operation nicht aus.
ANWENDUNGSZWECK
Ein Anwendungsprogramm kann den zugeordneten Socket-Namen mit der
Funktion getsockname abrufen.
SIEHE AUCH
connect(3N-xs), getsockname(3N-xs), listen(3N-xs), socket(3N-xs).
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98