Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

bind() - Einem Socket einen Namen zuordnen

&pagelevel(4)&pagelevel

#include <sys/socket.h>

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

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.

Siehe auch

connect(), getsockname(), listen(), socket()