Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

unlink(2)

socket(3N)

bind(3N)                                                           bind(3N)

NAME
     bind - Verbindung von einem Namen zu einem Socket herstellen

SYNTAX
     #include <sys/types.h>
     #include <sys/socket.h>

     int bind(int s, const struct sockaddr *name, int namelen);

BESCHREIBUNG
     bind() weist einem Socket einen Namen zu. Wenn ein Socket mit
     socket(3N) erzeugt wird, existiert er innerhalb eines bestimmten
     Namensraumes (der Adreßfamilie), besitzt jedoch noch keinen Namen.
     bind() veranlaßt, daß der Name, auf den durch name verwiesen wird, dem
     Socket zugewiesen wird.

HINWEISE
     Wird einem Socket in der UNIX Adreßfamilie mit bind() ein Namen
     zugeordnet, so wird ein Socket im UNIX Dateisystem erzeugt, der durch
     den Aufrufer gelöscht werden muß, wenn er nicht mehr benötigt wird
     [durch unlink(2)].

     Die Regeln, die bei der Namensbindung benutzt werden, unterscheiden
     sich in den einzelnen Adreßfamilien.

RÜCKGABEWERT
     Falls bind erfolgreich abläuft, wird der Wert 0 zurückgegeben. Der
     Rückgabewert -1 zeigt einen Fehler an, der in der globalen Variable
     errno näher spezifiziert ist.

DIAGNOSE
     Der bind()-Aufruf schlägt in folgenden Fällen fehl:

     EBADF             s ist kein gültiger Dateideskriptor.

     ENOTSOCK          s verweist nicht auf einen Socket.

     EADDRNOTAVAIL     Die angegebene Adresse ist auf dem lokalen Rechner
                       nicht verfügbar.

     EADDRINUSE        Die angegebene Adresse wird bereits verwendet.

     EINVAL            namelen entspricht nicht der Länge einer gültigen
                       Adresse für die angegebene Adreßfamilie.

     EINVAL            Der Socket ist bereits an eine Adresse gebunden.

     EACCES            Die angeforderte Adresse ist geschützt, und der
                       aktuelle Benutzer hat nicht die entsprechende
                       Erlaubnis, darauf zuzugreifen.





Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

bind(3N)                                                           bind(3N)

     ENOSR             Es waren nicht genügend STREAMS-Betriebsmittel ver-
                       fügbar, um die Operation durchzuführen.

     Die nun folgenden Fehler sind spezifisch für Adressen in der UNIX
     Domäne:

     ENOTDIR           Eine Komponente des Präfixes im Pfadnamen von name
                       ist kein Verzeichnis.

     ENOENT            Eine Komponente des Präfixes im Pfadnamen von name
                       existiert nicht.

     EACCES            Die Sucherlaubnis für eine Komponente des Präfixes
                       im Pfadnamen von name wurde nicht gegeben.

     ELOOP             Es wurden bei der Umsetzung des Pfadnamens zu viele
                       symbolische Verweise in name entdeckt.

     EIO               Während des Anlegens eines Verzeichniseintrags oder
                       beim Anlegen des Inodes ist ein E/A-Fehler aufgetre-
                       ten.

     EROFS             Der Inode befindet sich auf einem Dateisystem, das
                       nur lesbar ist.

     EISDIR            Es wurde ein Pfadname mit Wert Null angegeben.

SIEHE AUCH
     unlink(2), socket(3N).

























Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026