Provided by: manpages-pl-dev_0.7-1_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)