Provided by: manpages-pl-dev_4.21.0-2_all bug

NAZWA

       bindresvport - połączenie gniazda z uprzywilejowanym portem IP

BIBLIOTEKA

       Standardowa biblioteka C (libc, -lc)

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()  returns 0 on success; otherwise -1 is returned and errno is set to indicate the error.

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.

STANDARDY

       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)

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.

Linux man-pages 6.03                            5 lutego 2023 r.                                 bindresvport(3)