oracular (2) getpeername.2.gz

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