bindresvport(3) Library Functions Manual bindresvport(3) NAZWA bindresvport - laczy gniazdo z uprzywilejowanym portem IP BIBLIOTEKA Standardowa biblioteka C (libc, -lc) SKLADNIA #include #include int bindresvport(int sockfd, struct sockaddr_in *sin); OPIS bindresvport() sluzy do laczenia gniazda opisanego deskryptorem pliku sockfd z uprzywilejowanym anonimowym portem IP, to znaczy z przypadkowo wybranym portem z zakresu od 512 do 1023. Jesli powiedzie sie bind(2) uruchomiony przez bindresvport() i sin jest rozne od NULL, to sin->sin_port bedzie zawierac numer przydzielonego portu. sin moze miec wartosc NULL i w tym przypadku sin->sin_family jest przyjmowane jako AF_INET. Jednakze oznacza to rowniez, ze bindresvport() nie ma zadnej mozliwosci, by zwrocic numer przydzielonego portu (te informacje mozna pozniej uzyskac za pomoca getsockname(2)). WARTOSC ZWRACANA bindresvport() zwraca 0, gdy zakonczy sie pomyslnie, a w przeciwnym przypadku zwraca -1 i ustawia errno, wskazujac blad. BLEDY bindresvport() moze sie nie powiesc z tych samych powodow co bind(2). Ponadto moga wystapic nastepujace bledy: EACCES Proces wywolujacy nie mial uprawnien (pod Linuksem: proces wywolujacy nie mial przywileju CAP_NET_BIND_SERVICE (ang. capability) w przestrzeni nazw uzytkownika pokrywajacej jego sieciowa przestrzen nazw). EADDRINUSE Wszystkie uprzywilejowane porty sa juz uzywane. EAFNOSUPPORT (EPFNOSUPPORT w glibc 2.7 i wczesniejszych) sin jest rozny od NULL i sin->sin_family jest rozne od AF_INET. ATRYBUTY Informacje o pojeciach uzywanych w tym rozdziale mozna znalezc w podreczniku attributes(7). +---------------+--------------------------+---------------------------+ |Interfejs | Atrybut | Wartosc | +---------------+--------------------------+---------------------------+ |bindresvport() | Bezpieczenstwo watkowe | . glibc >= 2.17: | | | | MT-bezpieczne; | | | | glibc < 2.17: | | | | MT-niebezpieczne | +---------------+--------------------------+---------------------------+ Funkcja bindresvport() uzywa statycznej zmiennej ktore nie byla zabezpieczona przez blokade przed glibc 2.17, co nadawalo funkcji ceche MT-niebezpieczna. WERSJE Obecna w systemach BSD, Solaris i wielu innych. UWAGI W przeciwienstwie do niektorych implementacji bindresvport(), implementacja glibc ignoruje wartosc przekazana w sin->sin_port podczas wywolania tej funkcji. STANDARDY BSD. ZOBACZ TAKZE bind(2), getsockname(2) TLUMACZENIE Tlumaczenie niniejszej strony podrecznika: Andrzej Krzysztofowicz , Robert Luberda i Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . Linux man-pages 6.15 17 maja 2025 r. bindresvport(3)