getservent(3) Library Functions Manual getservent(3) NAZWA getservent, getservbyname, getservbyport, setservent, endservent - odczytanie wpisu dotyczacego uslugi BIBLIOTEKA Standardowa biblioteka C (libc, -lc) SKLADNIA #include 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 nastepny wpis z bazy danych uslug (patrz services(5)) i zwraca strukture servent zawierajaca pola powstale z rozlozenia pol wpisu. Polaczenie do bazy danych jest otwierane, jesli jest to potrzebne. Funkcja getservbyname() zwraca strukture servent zawierajaca ten wpis z bazy danych, ktory odpowiada usludze name korzystajacej z protokolu proto. Jesli proto jest rowne NULL, to pasowal bedzie dowolny protokol. Polaczenie do bazy danych jest otwierane, jesli jest to potrzebne. Funkcja getservbyport() zwraca strukture servent zawierajaca wartosci tego wpisu z bazy danych, ktory odpowiada portowi port (podanemu w sieciowej kolejnosci bajtow) dla protokolu proto. Jesli proto jest rowne NULL, to pasowal bedzie dowolny protokol. Polaczenie do bazy danych jest otwierane, jesli jest to potrzebne. Funkcja setservent() otwiera polaczenie do bazy danych i ustawia wskaznik nastepnego wpisu na pierwszy wpis. Jesli stayopen jest niezerowe, to polaczenie do bazy danych nie bedzie zamykane pomiedzy wywolaniami funkcji getserv*(). Funkcja endservent() zamyka polaczenie do bazy danych. Struktura servent jest zdefiniowana w nastepujaco: struct servent { char *s_name; /* oficjalna nazwa uslugi */ char **s_aliases; /* lista aliasow */ int s_port; /* numer portu */ char *s_proto; /* uzywany protokol */ } Polami struktury servent sa: s_name Oficjalna nazwa uslugi. s_aliases Zakonczona NULL-em lista alternatywnych nazw tej uslugi. s_port Numer portu tej uslugi podany w sieciowej kolejnosci bajtow. s_proto Nazwa protokolu z ktorego korzysta dana usluga. WARTOSC ZWRACANA Funkcje getservent(), getservbyname() i getservbyport() zwracaja wskaznik do statycznej struktury servent lub wskaznik NULL, gdy wystapi blad lub napotkany zostanie koniec pliku. PLIKI /etc/services plik bazy danych o uslugach ATRYBUTY Informacje o pojeciach uzywanych w tym rozdziale mozna znalezc w podreczniku attributes(7). +----------------+--------------------------+--------------------------+ |Interfejs | Atrybut | Wartosc | +----------------+--------------------------+--------------------------+ |getservent() | Bezpieczenstwo watkowe | MT-Unsafe race:servent | | | | race:serventbuf locale | +----------------+--------------------------+--------------------------+ |getservbyname() | Bezpieczenstwo watkowe | MT-Unsafe | | | | race:servbyname locale | +----------------+--------------------------+--------------------------+ |getservbyport() | Bezpieczenstwo watkowe | MT-Unsafe | | | | race:servbyport locale | +----------------+--------------------------+--------------------------+ |setservent(), | Bezpieczenstwo watkowe | MT-Unsafe race:servent | |endservent() | | locale | +----------------+--------------------------+--------------------------+ W powyzszej tabeli, servent w race:servent oznacza, ze jesli ktoras z funkcji setservent(), getservent() lub endservent() jest uzywana rownolegle w roznych watkach programu, moze nastapic sytuacja wyscigu danych. STANDARDY POSIX.1-2008. HISTORIA POSIX.1-2001, 4.3BSD. ZOBACZ TAKZE getnetent(3), getprotoent(3), getservent_r(3), services(5) TLUMACZENIE Autorami polskiego tlumaczenia niniejszej strony podrecznika sa: Andrzej Krzysztofowicz , Robert Luberda i Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . Linux man-pages 6.06 31 pazdziernika 2023 r. getservent(3)