bindresvport(3)

NUME
bindresvport - asociază un soclu cu un port IP privilegiat

BIBLIOTECA
Biblioteca C standard (libc, -lc)

REZUMAT
#include <sys/types.h>
#include <netinet/in.h>

int bindresvport(int sockfd, struct sockaddr_in *sin);

DESCRIERE
bindresvport() este folosită pentru a asocia soclul la care face referire descriptorul de fișier sockfd cu un port IP anonim privilegiat, adică un număr de port ales în mod arbitrar din intervalul 512-1023.

Dacă bind(2) efectuat de bindresvport() are succes, iar sin nu este NULL, atunci sin->sin_port returnează numărul de port alocat efectiv.

sin poate fi NULL, caz în care sin->sin_famy este considerat implicit ca fiind AF_INET. Cu toate acestea, în acest caz, bindresvport() nu are cum să returneze numărul de port alocat efectiv (această informație poate fi obținută ulterior cu ajutorul getsockname(2)).

VALOAREA RETURNATĂ
bindresvport() returnează 0 în caz de succes; în caz contrar, se returnează -1, iar errno este configurată pentru a indica eroarea.

ERORI
bindresvport() poate eșua din oricare dintre aceleași motive ca și bind(2). În plus, pot apărea următoarele erori:

EACCES
    Procesul de apelare nu a fost privilegiat (în Linux: procesul de apelare nu a avut capacitatea CAP_NET_BIND_SERVICE în spațiul de nume de utilizator care guvernează spațiul de nume de rețea).

EADDRINUSE
    Toate porturile privilegiate sunt în uz.

EAFNOSUPPORT (EPFNOSUPPORT în glibc 2.7 și versiunile anterioare).
    sin nu este NULL și sin->sin_family nu este AF_INET.

ATRIBUTE
Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
Interfață | Atribut | Valoare
bindresvport() | Siguranța firelor | glibc >= 2.17: MT-Safe; glibc < 2.17: MT-Unsafe

Funcția bindresvport() utilizează o variabilă statică care nu era protejată de un sistem de blocare înainte de glibc 2.17, ceea ce face ca funcția să fie nesigură din punct de vedere tehnic.

VERSIUNI
Prezentă în BSD, Solaris și în multe alte sisteme.

NOTE
Spre deosebire de unele implementări bindresvport(), implementarea glibc ignoră orice valoare pe care apelantul o furnizează în sin->sin_port.

STANDARDE
BSD.

CONSULTAȚI ȘI
bind(2), getsockname(2)

TRADUCERE
Traducerea în limba română a acestui manual a fost creată de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă Nicio RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.