getnetent, getnetbyname, getnetbyaddr, setnetent, endnetent - odczytanie wpisu
dotyczącego sieci
Standardowa biblioteka C (
libc,
-lc)
#include <netdb.h>
struct netent *getnetent(void);
struct netent *getnetbyname(const char *name);
struct netent *getnetbyaddr(uint32_t net, int type);
void setnetent(int stayopen);
void endnetent(void);
Funkcja
getnetent() odczytuje następny wpis z bazy danych sieci i
zwraca strukturę
netent zawierającą pola
powstałe z rozłożenia pól wpisu.
Połączenie do bazy danych jest otwierane, jeśli jest to
potrzebne.
Funkcja
getnetbyname() zwraca strukturę
netent
zawierającą ten wpis z bazy danych, który odpowiada sieci
name.
Funkcja
getnetbyaddr() zwraca strukturę
netent
zawierającą ten wpis z bazy danych, który odpowiada sieci
o numerze
net rodzaju
type. Argument
net musi być
w porządku bajtów lokalnego komputera (host byte order).
Funkcja
setnetent() otwiera połączenie do bazy danych i
ustawia wskaźnik kolejnego wpisu na pierwszy wpis. Jeśli
stayopen jest niezerowy, to połączenie do bazy danych nie
będzie zamykane pomiędzy wywołaniami funkcji
getnet*().
Funkcja
endnetent() zamyka połączenie do bazy danych.
Struktura
netent jest zdefiniowana w
<netdb.h>
następująco:
struct netent {
char *n_name; /* oficjalna nazwa sieci */
char **n_aliases; /* lista aliasów */
int n_addrtype; /* rodzaj adresu sieci */
uint32_t n_net; /* numer sieci */
}
Polami struktury
netent są:
- n_name
- Oficjalna nazwa sieci.
- n_aliases
- Zakończona NULL-em lista alternatywnych nazw tej
sieci.
- n_addrtype
- Rodzaj numeru sieci; zawsze AF_INET.
- n_net
- Numer sieci w porządku bajtów hosta.
Funkcje
getnetent(),
getnetbyname() i
getnetbyaddr()
zwracają wskaźnik do statycznej struktury
netent lub
wskaźnik null, gdy wystąpi błąd lub napotkany
zostanie koniec pliku.
- /etc/networks
- plik bazy danych z sieciami
Informacje o pojęciach używanych w tym rozdziale można
znaleźć w podręczniku
attributes(7).
Interfejs |
Atrybut |
Wartość |
getnetent() |
Bezpieczeństwo wątkowe |
MT-Unsafe race:netent race:netentbuf env locale |
getnetbyname() |
Bezpieczeństwo wątkowe |
MT-Unsafe race:netbyname env locale |
getnetbyaddr() |
Bezpieczeństwo wątkowe |
MT-Unsafe race:netbyaddr locale |
setnetent(), endnetent() |
Bezpieczeństwo wątkowe |
MT-Unsafe race:netent env locale |
W powyższej tabeli,
netent w
race:netent oznacza, że
jeśli któraś z funkcji
setnetent(),
getnetent() lub
endnetent() jest używana
równolegle w różnych wątkach programu, może
nastąpić sytuacja wyścigu danych.
POSIX.1-2001, POSIX.1-2008, 4.3BSD.
Before glibc 2.2, the
net argument of
getnetbyaddr() was of type
long.
getnetent_r(3),
getprotoent(3),
getservent(3)
RFC 1101
Autorami polskiego tłumaczenia niniejszej strony podręcznika
są: Andrzej Krzysztofowicz <
[email protected]>, Robert
Luberda <
[email protected]> i Michał Kułach
<
[email protected]>
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
[email protected]