GETPEERNAME(2)

BEZEICHNUNG
getpeername - holt den Namen einer verbundenen Gegenstelle

ÜBERSICHT
#include <sys/socket.h>

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

BESCHREIBUNG
getpeername() schreibt die Adresse der Gegenstelle, die mit dem Socket sockfd verbunden ist, in den Puffer, auf den addr zeigt. Der Parameter addrlen sollte die Größe des freien Speicherplatzes an der Adresse addr enthalten. Nach dem Aufruf enthält addrlen die Größe des zurückgegebenen Namens (in Byte). Der Name wird abgeschnitten, wenn der zur Verfügung gestellte Puffer zu klein ist.

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 Deskriptor.

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.

ENOTCONN
    Der Socket ist nicht verbunden.

ENOTSOCK
    Der Parameter sockfd ist eine Datei, kein Socket.

KONFORM ZU
SVr4, 4.4BSD (der Funktionsaufruf getpeername() war erstmals in 4.2BSD zu finden), POSIX.1-2001.

ANMERKUNGEN
The third argument of getpeername() is in reality an int * (and this is what 4.x BSD and libc4 and libc5 have). Some POSIX confusion resulted in the present socklen_t, also used by glibc. See also accept(2).

For stream sockets, once a connect(2) has been performed, either socket can call getpeername() to obtain the address of the peer socket. On the other hand, datagram sockets are connectionless. Calling connect(2) on a datagram socket merely sets the peer address for outgoing datagrams sent with write(2) or recv(2). The caller of connect(2) can use getpeername() to obtain the peer address that it earlier set for the socket. However, the peer socket is unaware of this information, and calling getpeername() on the peer socket will return no useful information (unless a connect(2) call was also executed on the peer). Note also that the receiver of a datagram can obtain the address of the sender when using recvfrom(2).

SIEHE AUCH
accept(2), bind(2), getsockname(2), ip(7), socket(7), unix(7)

KOLOPHON
This page is part of release 3.54 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Dennis Stampfer <kontakt@dstampfer.de> und Tobias Quathamer <toddy@debian.org> 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 <debian-l10n-german@lists.debian.org>.