getservent, getservbyname, getservbyport, setservent, endservent - получают запись о сервисе
НАЗВАНИЕgetservent, getservbyname, getservbyport, setservent, end-
servent - получают запись о сервисе
СИНТАКСИС
#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);
ОПИСАНИЕ
Функция 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 определена в файле следующим
образом:
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