getprotoent, getprotobyname, getprotobynumber, setprotoent, endprotoent - odczytanie wpisu dotyczącego protokołu
Standardowa biblioteka C (libc, -lc)
#include <netdb.h>
struct protoent *getprotoent(void);
struct protoent *getprotobyname(const char *name);
struct protoent *getprotobynumber(int proto);
void setprotoent(int stayopen);
void endprotoent(void);
Funkcja getprotoent() odczytuje następny wpis z bazy danych protokołów (patrz protocols(5)) i zwraca strukturę protoent 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 getprotobyname() zwraca strukturę protoent zawierającą ten wpis z bazy danych, który odpowiada protokołowi name. Połączenie do bazy danych jest otwierane, jeśli jest to potrzebne.
Funkcja getprotobynumber() zwraca strukturę protoent zawierającą ten wpis z bazy danych, który odpowiada protokołowi number. Połączenie do bazy danych jest otwierane, jeśli jest to potrzebne.
Funkcja setprotoent() 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 getproto*().
Funkcja endprotoent() zamyka połączenie do bazy danych.
Struktura protoent jest zdefiniowana w <netdb.h> następująco:
struct protoent {
char *p_name; /* oficjalna nazwa protokołu */
char **p_aliases; /* lista aliasów */
int p_proto; /* numer protokołu */
}
Polami struktury protoent są:
p_name |
Oficjalna nazwa protokołu. |
p_aliases
Zakończona NULL-em lista alternatywnych nazw tego protokołu.
p_proto
Numer protokołu.
Funkcje getprotoent(), getprotobyname() i getprotobynumber() zwracają wskaźnik do statycznej struktury servent lub wskaźnik NULL, gdy wystąpi błąd lub napotkany zostanie koniec pliku.
/etc/protocols
plik bazy danych dla protokołów
Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).
W powyższej tabeli, protoent w race:protoent oznacza, że jeśli któraś z funkcji setprotoent(), getprotoent() lub endprotoent() 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.
getnetent(3), getprotoent_r(3), getservent(3), protocols(5)
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Andrzej Krzysztofowicz <ankry AT green DOT mf DOT pg DOT gda DOT pl>, Robert Luberda <robert AT debian DOT org> i Michał Kułach <michal DOT kulach AT gmail DOT 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 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.