ИМЯ

getservent, getservbyname, getservbyport, setservent, endservent - возвращают запись о службе

LIBRARY

Standard C library ( libc, -lc)

СИНТАКСИС

#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);

ОПИСАНИЕ

Функция getservent() считывает следующую запись из файла, содержащего базу служб (смотрите services(5)), и возвращает структуру servent, содержащую поля из этой записи. При необходимости будет открыто подключение к базе.
Функция getservbyname() возвращает структуру servent элемента из базы данных, который совпадает со службой name и использующей протокол proto. Если значение proto равно NULL, то подойдёт любой протокол. При необходимости будет открыто подключение к базе.
Функция getservbyport() возвращает структуру servent элемента из базы данных, который совпадает с портом port (значение имеет сетевой порядок байт) и использующей протокол proto. Если значение proto равно NULL, то подойдёт любой протокол. При необходимости будет открыто подключение к базе.
Функция setservent() открывает соединение к базе и устанавливает следующую запись к первой записи. Если stayopen не равен нулю, то подключение к базе между вызовами нескольких функций getserv*() не будет закрыто.
Функция endservent() закрывает подключение к базе.
Структура servent определена в <netdb.h> таким образом:

struct servent {
    char  *s_name;       /* официальное имя службы */
    char **s_aliases;    /* список псевдонимов */
    int    s_port;       /* номер порта */
    char  *s_proto;      /* используемый протокол */
}

Члены структуры servent:
s_name
Официальное название службы.
s_aliases
Список альтернативных имён службы, завершающийся NULL.
s_port
Номер порта службы, задаваемый в сетевом порядке байт.
s_proto
Имя протокола, используемого с данной службой.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

The getservent(), getservbyname(), and getservbyport() functions return a pointer to a statically allocated servent structure, or NULL if an error occurs or the end of the file is reached.

ФАЙЛЫ

/etc/services
файл базы данных служб

АТРИБУТЫ

Описание терминов данного раздела смотрите в attributes(7).
Интерфейс Атрибут Значение
getservent() Безвредность в нитях MT-Unsafe race:servent race:serventbuf locale
getservbyname() Безвредность в нитях MT-Unsafe race:servbyname locale
getservbyport() Безвредность в нитях MT-Unsafe race:servbyport locale
setservent(), endservent() Безвредность в нитях MT-Unsafe race:servent locale
 
В приведённой выше таблице servent в race:servent означает, что если в нескольких нитях программы одновременно используются функции setservent(), getservent() или endservent(), то может возникнуть состязательность по данным.

СТАНДАРТЫ

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

СМ. ТАКЖЕ

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

ПЕРЕВОД

Русский перевод этой страницы руководства был сделан Azamat Hackimov <[email protected]>, Dmitry Bolkhovskikh <[email protected]>, Vladislav <[email protected]>, Yuri Kozlov <[email protected]> и Иван Павлов <[email protected]>
Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.
Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на [email protected]

Recommended readings

Pages related to getservbyname you should read also: