Provided by: manpages-pl-dev_0.7-2_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  był  uprzywilejowany  (a  dokładniej: nie miał ustawionego
              atrybutu CAP_NET_BIND_SERVICE).

       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  4.07  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   man  są:  Andrzej
       Krzysztofowicz (PTM) <ankry@mif.pg.gda.pl>, Robert Luberda  <robert@debian.org>  i  Michał
       Kułach <michal.kulach@gmail.com>.

       Polskie  tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów na
       stronie  http://sourceforge.net/projects/manpages-pl/.  Jest   zgodne   z   wersją    4.07
       oryginału.

                                            2015-03-02                            BINDRESVPORT(3)