Provided by: manpages-pl-dev_4.18.1-1_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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   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⟩.