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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   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⟩.