Provided by: manpages-pl-dev_4.27.0-1_all 

NAZWA
getpeername - pobiera nazwę drugiej strony połączonego gniazda
BIBLIOTEKA
Standardowa biblioteka C (libc, -lc)
SKŁADNIA
#include <sys/socket.h>
int getpeername(int sockfd, struct sockaddr *restrict addr,
socklen_t *restrict addrlen);
OPIS
getpeername() zwraca adres drugiej strony równorzędnego połączenia odbywającego się poprzez gniazdo
sockfd, w buforze na który wskazuje addr. Argument addrlen powinien być zainicjalizowany tak, aby podawać
rozmiar obszaru wskazywanego przez addr. Po zakończeniu, będzie on zawierać rzeczywisty rozmiar zwróconej
nazwy (w bajtach). Nazwa jest obcinana, jeśli zadany bufor jest zbyt mały.
Zwracany adres jest przycinany, jeśli udostępniony bufor jest zbyt mały; w tym przypadku addrlen zwróci
wartość większą niż była podana w wywołaniu.
WARTOŚĆ ZWRACANA
Po pomyślnym zakończeniu zwracane jest zero. Po błędzie zwracane jest -1 i ustawiane errno, wskazując
błąd.
BŁĘDY
EBADF Argument sockfd nie jest prawidłowym deskryptorem.
EFAULT Parametr addr wskazuje poza dostępną przestrzeń adresową procesu.
EINVAL addrlen jest nieprawidłowe (np. jest ujemne).
ENOBUFS
Dostępna ilość zasobów systemowych jest niewystarczająca dla wykonania operacji.
ENOTCONN
Gniazdo nie jest podłączone.
ENOTSOCK
Deskryptor pliku sockfd nie odnosi się do gniazda.
STANDARDY
POSIX.1-2008.
HISTORIA
POSIX.1-2001, SVr4, 4.4BSD (pojawiło się pierwotnie w 4.2BSD).
UWAGI
W przypadku gniazd strumieniowych, po przeprowadzeniu connect(2), każde z gniazd może wywołać
getpeername(), aby pozyskać adres drugiego gniazda. Z drugiej strony, gniazda datagramowe są
bezpołączeniowe. Wywołanie connect(2) na gnieździe datagramowym jedynie ustawia adres drugiej strony w
celu wysyłania datagramów za pomocą write(2) lub recv(2). Odbiorca connect(2) może użyć getpeername() do
pozyskania adresu drugiego gniazda, które ustawiło wcześniej dla gniazda. Jednakże drugie gniazdo nie ma
tej wiedzy, zatem wywołanie getpeername() na drugim gnieździe nie zwróci żadnej przydatnej informacji
(chyba, że wywołanie connect(2) wykonano również na drugim gnieździe). Proszę zauważyć, że odbiorca
datagramu może pozyskać adres wysyłającego za pomocą recvfrom(2).
ZOBACZ TAKŻE
accept(2), bind(2), getsockname(2), ip(7), socket(7), unix(7)
TŁUMACZENIE
Tłumaczenie niniejszej strony podręcznika: Przemek Borys <pborys@dione.ids.pl>, Andrzej Krzysztofowicz
<ankry@green.mf.pg.gda.pl> i Michał Kułach <michal.kulach@gmail.com>
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać
zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ
ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-
list@lists.sourceforge.net.
Linux man-pages 6.9.1 2 maja 2024 r. getpeername(2)