Linux.pl
Opcje wyszukiwania podręcznika man:
Lista stron man zaczynających się od znaku:
A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z   ALPHA   NUM   OTHER   ALL
getaddrinfo(3)          Podręcznik programisty Linuksa          getaddrinfo(3)

NAZWA
       getaddrinfo - tłumaczenie adresów i usług sieciowych

SKŁADNIA
       #include <sys/types.h>
       #include <sys/socket.h>
       #include <netdb.h>

       int getaddrinfo(const char *node, const char *service,
                       const struct addrinfo *hints,
                       struct addrinfo **res);

       void freeaddrinfo(struct addrinfo *res);

       const char *gai_strerror(int errcode);

OPIS
       Funkcja  getaddrinfo(3)  łączy w pojedynczym interfejsie funkcjonalność
       udostępnianą przez funkcje getipnodebyname(3), getipnodebyaddr(3), get-
       servbyname  (3)  i  getservbyport(3).  Przystosowana do wielowątkowości
       funkcja getaddrinfo(3) tworzy jedną lub więcej struktur adresowych gni-
       azda,  które  mogą  być  wykorzystane przez funkcje systemowe bind(2) i
       connect(2) do utworzenia gniazda klienta lub serwera.

       Funkcja getaddrinfo(3)  nie  jest  ograniczona  do  tworzenia  struktur
       adresowych  gniazd  IPv4. Gniazda IPv6 mogą również być tworzone za jej
       pomocą, o ile dostępne jest wspomaganie dla IPv6. Te struktury adresowe
       gniazd mogą być bezpośrednio wykorzystane przez bind(2) i connect(2) do
       sporządzenia gniazda klienta lub serwera.

       Struktura addrinfo używana przez tę funkcję zawiera następujące pola:

       struct addrinfo {
           int     ai_flags;
           int     ai_family;
           int     ai_socktype;
           int     ai_protocol;
           size_t  ai_addrlen;
           struct sockaddr *ai_addr;
           char   *ai_canonname;
           struct addrinfo *ai_next;
       };

       getaddrinfo(3) ustawia res, aby wskazywało na  dynamicznie  zaalokowaną
       listę  struktur  addrinfo,  dowiązaną  do pola ai_next.  Istnieje kilka
       powodów, dla których lista może zawierać  więcej  niż  jedną  strukturę
       addrinfo,  włączając  w  to:  posiadanie  przez  host wielu interfejsów
       sieciowych oraz dostępność tej samej usługi  poprzez  wiele  protokołów
       gniazda  (na  przykład,  gdy  jednym  z  nich jest SOCK_STREAM, a innym
       SOCK_DGRAM).

       Pola ai_family, ai_socktype i ai_protocol mają to samo  znaczenie  jako
       odpowiednie  parametry wywołania systemowego socket(2).  Funkcja getad-
       drinfo(3) zwraca adresy gniazd IPv4 lub IPv6 (ai_family zostanie ustaw-
       ione albo na PF_INET albo na PF_INET6).

       Parametr   hints  określa  preferowany  rodzaj  gniazda  lub  protokół.
       Wartość NULL dla hints  określa,  że  akceptowany  jest  dowolny  adres
       sieciowy  lub  protokół.   Jeśli parametr ten ma wartość różną od NULL,
       wskazuje on na strukturę addrinfo, w której pola ai_family, ai_socktype
       i  ai_protocol  określają  preferowany  rodzaj  gniazda.   PF_UNSPEC  w
       ai_family określa dowolną rodzinę  protokołów  (na  przykład  IPv4  lub
       IPv6).  0 w ai_socktype lub ai_protocol stwierdza, że akceptowalny jest
       również dowolny rodzaj gniazda lub  protokół.   Pole  ai_flags  zawiera
       dodatkowe,  zdefiniowane  poniżej,  opcje.  Wiele znaczników podaje się
       jako ich logiczne OR.  Wszystkie pozostałe pola parametru  hints  muszą
       zawierać albo 0 albo wskaźnik NULL.

       Parametry  node i service mogą być równe NULL, ale nie oba naraz.  node
       zawiera  albo  adres  sieciowy  w  postaci  numerycznej   (w   formacie
       dziesiętnych  liczb rozdzielonych kropkami dla IPv4, a w formacie szes-
       nastkowym dla IPv6) albo nazwę hosta, dla której adresy  sieciowe  będą
       poszukiwane  i rozwiązane.  Jeśli pole ai_flags parametru hints zawiera
       znacznik AI_NUMERICHOST, to parametr node musi być adresem sieciowym  w
       postaci  numerycznej.   Znacznik AI_NUMERICHOST eliminuje jakiekolwiek,
       potencjalnie długotrwałe, poszukiwania adresu sieciowego hosta.

       Funkcja getaddrinfo(3) tworzy listę struktur addrinfo,  po  jednej  dla
       każdej   podstawy  ograniczenia  adresów  sieciowych  narzuconej  przez
       parametr hints.  Gdy ai_flags w hints zawiera znacznik AI_CANONNAME, to
       ai_canonname  jest  ustawiane  tak,  aby  wskazywało na oficjalną nazwę
       hosta.   ai_family,  ai_socktype  i  ai_protocol  zawierają   parametry
       tworzenia  gniazda.  Wskaźnik do adresu gniazda jest umieszczany w polu
       ai_addr, a długość adresu gniazda w bajtach  jest  umieszczana  w  polu
       ai_addrlen.

       Gdy  node  jest równe NULL, inicjalizacja adresu sieciowego w każdej ze
       struktur gniazda zależy od znacznika AI_PASSIVE, który jest ustawiany w
       polu ai_flags parametru hints.  Gdy znacznik AI_PASSIVE jest ustawiony,
       to adres sieciowy w każdej ze struktur gniazda pozostanie nieokreślony.
       Jest to wykorzystywane przez programy serwerów, które zamierzają przyj-
       mować połączenia od klientów na dowolny adres sieciowy.   Gdy  znacznik
       AI_PASSIVE  nie jest ustawiony, to adres sieciowy zostanie ustawiony na
       adres interfejsu  loopback.   Jest  to  wykorzystywane  przez  programy
       klienckie,  które zamierzają połączyć się z serwerem działającym na tym
       samym hoście.

       service ustawia numer portu w adresie sieciowym każdej ze struktur gni-
       azda.   Jeśli  service  jest  różne  od NULL, to numer portu pozostanie
       niezainicjalizowany.

       Funkcja freeaddrinfo(3) zwalnia  pamięć  przydzieloną  dla  dynamicznie
       zaalokowanej listy res.

WARTOŚĆ ZWRACANA
       getaddrinfo(3)  zwraca  0,  gdy  zakończy się pomyślnie, a w przeciwnym
       razie jeden z następujących niezerowych kodów błędów:

       EAI_FAMILY
              Zupełny brak wsparcia dla żądanej rodziny adresów.

       EAI_SOCKTYPE
              Zupełny brak wsparcia dla żądanego rodzaju gniazda.

       EAI_BADFLAGS
              ai_flags zawiera nieprawidłowe znaczniki.

       EAI_NONAME
              node lub service jes nieznane.  Ten błąd jest również  zwracany,
              gdy zarówno node, jak i service są równe NULL.

       EAI_SERVICE
              Żądana  usługa  nie  jest dostępna dla zadanego rodzaju gniazda.
              Może ona jednak być dostępna dla innego rodzaju gniazda.

       EAI_ADDRFAMILY
              Podany host nie posiada żadnego adresu  sieciowego  dla  zadanej
              rodziny adresów.

       EAI_NODATA
              Podany  host  istnieje,  ale  nie zdefiniowano dla niego żadnego
              adresu sieciowego.

       EAI_MEMORY
              Brak pamięci.

       EAI_FAIL
              Serwer nazw zwrócił błąd trwały.

       EAI_AGAIN
              Serwer nazw zwrócił błąd tymczasowy.  Należy spróbować  później.

       EAI_SYSTEM
              Inny  błąd systemowy; szczegółowe informacje zawarte są w errno.

       Funkcja  gai_strerror(3)  tłumaczy  te  kody  błędów  na  czytelny  dla
       człowieka napis, odpowiedni dla zgłaszania błędów.

ZOBACZ TAKŻE
       getipnodebyname(3), getipnodebyaddr(3)

Linux                             2000-12-18                    getaddrinfo(3)

Time taken: 0.00043 seconds


Created with the man page lookup class by Andrew Collington, php@amnuts.com