GETSERVENT(3)

НАЗВАНИЕ
getservent, getservbyname, getservbyport, setservent, endservent - получают запись о сервисе

СИНТАКСИС
#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() считывает следующую строку из файла /etc/services и возвращает структуру servent, содержащую поля этой строки. Если необходимо, файл /etc/services открывается.

Функция getservbyname() возвращает структуру servent для строки из /etc/services, совпадающей с именем сервиса name и использующей протокол proto. Если proto равен NULL, то подойдет любой протокол.

Функция getservbyport() возвращает структуру servent для строки, совпадающей с портом port, указанным в сетевом порядке расположения байтов и использующим протокол proto. Если proto равен NULL, то подойдет любой протокол.

Функция setservent() открывает файл /etc/services и переходит в его начало. Если значение stayopen является истинным (1), то файл не будет закрываться между вызовами getservbyname() и getservbyport().

Функция endservent() закрывает /etc/services.

Структура servent определена в файле <netdb.h> следующим образом:

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

Полями структуры servent являются:

s_name
    (официальное имя сервиса);

s_aliases
    (оканчивающийся нулем список альтернативных имен сервисов);

s_port
    (номер порта сервиса, указанный в сетевом порядке байтов);

s_proto
    (имя протокола, используемого с этим сервисом).

ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
Функции getservent(), getservbyname() и getservbyport() возвращают структуру servent или NULL, если достигнут конец файла или произошла ошибка.

ФАЙЛЫ

/etc/services
    (файл базы данных сервисов).

СООТВЕТСТВИЕ СТАНДАРТАМ
BSD 4.3

СМ. ТАКЖЕ
getprotoent(3), getnetent(3), services(5)