getsockname(2) liefert den Namen eines Sockets

ÜBERSICHT

#include <sys/socket.h>


int getsockname(int sockfd, struct sockaddr *addr, socklen_t *addrlen);

BESCHREIBUNG

Getsockname() liefert die aktuelle Adresse, an die das Socket sockfd gebunden ist, in dem Puffer zurück, auf den addr zeigt. Mit dem Parameter addrlen muss die Größe des Puffers (in Byte) übergeben werden, auf die addr zeigt. Bei der Rückkehr enthält der Parameter die tatsächliche Größe der Socket-Adresse.

Die zurückgegebene Adresse wird gekürzt, falls der bereitgestellte Puffer zu klein ist. In diesem Fall gibt addrlen einen Wert zurück, der größer als der übergebene Wert ist.

RÜCKGABEWERT

Bei Erfolg wird Null zurückgegeben. Bei einem Fehler wird -1 zurückgegeben und errno entsprechend gesetzt.

FEHLER

EBADF
Das Argument sockfd ist kein zulässiger Dateideskriptor.
EFAULT
Das Argument addr zeigt aus dem vom Prozess adressierbaren Adressraum heraus.
EINVAL
addrlen ist nicht zulässig (ist z. B. negativ).
ENOBUFS
Es waren im System zu wenig Ressourcen für die Ausführung dieses Vorgangs verfügbar.
ENOTSOCK
Der Dateideskriptor sockfd zeigt nicht auf ein Socket.

KONFORM ZU

POSIX.1-2001, POSIX.1-2008, SVr4, 4.4BSD (getsockname() war erstmals in 4.2BSD zu finden).

ANMERKUNGEN

Das dritte Argument von getsockname() ist in Wirklichkeit ein int * (und dies liegt bei 4.x BSD und libc4 und libc5 vor). Ein Teil der POSIX-Verwirrungen führten zu dem aktuellen socklen_t, das auch von Glibc benutzt wird. Siehe auch accept(2).

KOLOPHON

Diese Seite ist Teil der Veröffentlichung 4.06 des Projekts Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Dennis Stampfer <[email protected]>, Martin Eberhard Schauer <[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 <[email protected]>.