Provided by: manpages-pl-dev_0.6-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 deskryptora gniazda 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

   Wielowątkowość (patrz pthreads(7))
       Przed wersją 2.17 biblioteki glibc funkcja bindresvport() używała statycznej niechronionej
       zmiennej, tak więc nie była bezpieczna dla wątków.

       Od wersji 2.17 biblioteki glibc funkcja bindresvport() używa blokad, aby chronić dostęp do
       zmiennej globalnej, więc jest bezpieczna dla wątków.

ZGODNE Z

       Nie występuje w POSIX.1-2001. 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  3.71  projektu  Linux  man-pages.  Opis
       projektu,  informacje  dotyczące  zgłaszania błędów, oraz najnowszą wersję oryginału można
       znaleźć pod adresem http://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ą   3.71
       oryginału.

                                            2013-06-21                            BINDRESVPORT(3)