Provided by: manpages-pl-dev_4.13-4_all bug

NAZWA

       bindresvport - połączenie gniazda z uprzywilejowanym portem IP

SKŁADNIA

       #include <sys/types.h>
       #include <netinet/in.h>

       int bindresvport(int sockfd, struct sockaddr_in *sin);

OPIS

       bindresvport()   służy   do   łączenia  gniazda  opisanego  deskryptorem  pliku  sockfd  z
       uprzywilejowanym anonimowym portem IP, to znaczy z przypadkowo wybranym portem  o  zakresu
       od 512 do 1023.

       Jeśli  powiedzie się bind(2) uruchomiony przez bindresvport() i sin jest różne od NULL, to
       sin->sin_port będzie zawierać numer przydzielonego portu.

       sin może mieć wartość NULL  i  w  tym  przypadku  sin->sin_family  jest  przyjmowane  jako
       AF_INET.  Jednakże  oznacza  to  również,  że  bindresvport() nie ma żadnej możliwości, by
       zwrócić numer przydzielonego  portu.  (Tę  informację  można  później  uzyskać  za  pomocą
       getsockname(2)).

WARTOŚĆ ZWRACANA

       bindresvport()  zwraca 0, gdy zakończy się pomyślnie, a w przeciwnym przypadku zwraca -1 i
       ustawia errno, wskazując na przyczynę błędu.

BŁĘDY

       bindresvport() może się nie powieść  z  tych  samych  powodów  co  bind(2).  Ponadto  mogą
       wystąpić następujące błędy:

       EACCES Proces  wywołujący  nie  miał  uprawnień  (pod Linuksem: proces wywołujący nie miał
              zdolności CAP_NET_BIND_SERVICE w przestrzeni  nazw  użytkownika  pokrywającej  jego
              sieciową przestrzeń nazw).

       EADDRINUSE
              Wszystkie uprzywilejowane porty są już używane.

       EAFNOSUPPORT (EPFNOSUPPORT w glibc 2.7 i wcześniejszych)
              sin jest różny od NULL i sin->sin_family jest różne od AF_INET.

ATRYBUTY

       Informacje   o   pojęciach   używanych   w  tym  rozdziale  można  znaleźć  w  podręczniku
       attributes(7).

       ┌───────────────┬────────────────────────┬─────────────────────────┐
       │InterfejsAtrybutWartość                 │
       ├───────────────┼────────────────────────┼─────────────────────────┤
       │bindresvport() │ Bezpieczeństwo wątkowe │ glibc >= 2.17: MT-Safe  │
       │               │                        │ glibc < 2.17: MT-Unsafe │
       └───────────────┴────────────────────────┴─────────────────────────┘
       Funkcja bindresvport() używa  statycznej  zmiennej  które  nie  była  zabezpieczona  przez
       blokadę przed glibc 2.17, co nadawało funkcji cechę MT-Unsafe.

ZGODNE Z

       Nie występuje w POSIX.1. Obecna w systemach BSD, Solaris i wielu innych.

UWAGI

       W przeciwieństwie do niektórych implementacji bindresvport(), implementacja glibc ignoruje
       wartość przekazaną w sin->sin_port podczas wywołania tej funkcji.

ZOBACZ TAKŻE

       bind(2), getsockname(2)

O STRONIE

       Angielska wersja tej strony  pochodzi  z  wydania  5.10  projektu  Linux  man-pages.  Opis
       projektu,  informacje  dotyczące  zgłaszania  błędów oraz najnowszą wersję oryginału można
       znaleźć pod adresem https://www.kernel.org/doc/man-pages/.

T◈UMACZENIE

       Autorami polskiego tłumaczenia niniejszej strony podręcznika  są:  Andrzej  Krzysztofowicz
       <ankry@green.mf.pg.gda.pl>,   Robert   Luberda   <robert@debian.org>   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⟩.

                                       15 września 2017 r.                        BINDRESVPORT(3)