Scroll to navigation

GETSERVENT(3) Podręcznik programisty Linuksa GETSERVENT(3)

NAZWA

getservent, getservbyname, getservbyport, setservent, endservent - odczytanie wpisu dotyczącego usługi

SKŁADNIA

#include <netdb.h>
struct servent *getservent(void);
struct servent *getservbyname(const char *name, const char *proto);
struct servent *getservbyport(int port, const char *proto);
void setservent(int stayopen);
void endservent(void);

OPIS

Funkcja getservent() odczytuje następny wpis z bazy danych usług (patrz services(5)) i zwraca strukturę servent 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 getservbyname() zwraca strukturę servent zawierającą ten wpis z bazy danych, który odpowiada usłudze name korzystającej z protokołu proto. Jeśli proto jest równe NULL, to pasował będzie dowolny protokół. Połączenie do bazy danych jest otwierane, jeśli jest to potrzebne.

Funkcja getservbyport() zwraca strukturę servent zawierającą wartości tego wpisu z bazy danych, który odpowiada portowi port (podanemu w sieciowej kolejności bajtów) dla protokołu proto. Jeśli proto jest równe NULL, to pasował będzie dowolny protokół. Połączenie do bazy danych jest otwierane, jeśli jest to potrzebne.

Funkcja setservent() otwiera połączenie do bazy danych i ustawia wskaźnik następnego wpisu na pierwszy wpis. Jeśli stayopen jest niezerowe, to połączenie do bazy danych nie będzie zamykane pomiędzy wywołaniami funkcji getserv*().

Funkcja endservent() zamyka połączenie do bazy danych.

Struktura servent jest zdefiniowana w <netdb.h> następująco:


struct servent {

char *s_name; /* oficjalna nazwa usługi */
char **s_aliases; /* lista aliasów */
int s_port; /* numer portu */
char *s_proto; /* używany protokół */ }

Polami struktury servent są:

Oficjalna nazwa usługi.
Zakończona NULL-em lista alternatywnych nazw tej usługi.
Numer portu tej usługi podany w sieciowej kolejności bajtów.
Nazwa protokołu z którego korzysta dana usługa.

WARTOŚĆ ZWRACANA

Funkcje getservent(), getservbyname() i getservbyport() zwracają wskaźnik do statycznej struktury servent lub wskaźnik NULL, gdy wystąpi błąd lub napotkany zostanie koniec pliku.

PLIKI

/etc/services
plik bazy danych o usługach

ATRYBUTY

Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).

Interfejs Atrybut Wartość
getservent() Bezpieczeństwo wątkowe MT-Unsafe race:servent race:serventbuf locale
getservbyname() Bezpieczeństwo wątkowe MT-Unsafe race:servbyname locale
getservbyport() Bezpieczeństwo wątkowe MT-Unsafe race:servbyport locale
setservent(), endservent() Bezpieczeństwo wątkowe MT-Unsafe race:servent locale

W powyższej tabeli, servent w race:servent oznacza, że jeśli któraś z funkcji setservent(), getservent() lub endservent() jest używana równolegle w różnych wątkach programu, może nastąpić sytuacja wyścigu danych.

ZGODNE Z

POSIX.1-2001, POSIX.1-2008, 4.3BSD.

ZOBACZ TAKŻE

getnetent(3), getprotoent(3), getservent_r(3), services(5)

O STRONIE

Angielska wersja tej strony pochodzi z wydania 5.10 projektu Linux man-pages. Opis projektu, informacje dotyczące zgłaszania błędów oraz najnowszą wersję oryginału można znaleźć pod adresem https://www.kernel.org/doc/man-pages/.

TŁUMACZENIE

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.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@lists.sourceforge.net.

21 grudnia 2020 r. GNU