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  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)