Provided by: manpages-pl-dev_4.23.1-1_all bug

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

       Autorami polskiego tłumaczenia niniejszej strony podręcznika  są:  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.8                              2 maja 2024 r.                                   getpeername(2)