getservbyname()

Получить служебную запись по имени

Прототип:

#include <netdb.h>
struct servent * getservbyname( const char *name,
const char *proto );

Аргументы:

name
Название службы, запись о которой требуется найти.
proto
NULL, или протокол службы.

Библиотека:

libsocket

Описание:

Функция getservbyname() получает запись для заданного name и протокола из базы данных сетевых служб, /etc/services. Данная функция возвращает указатель на struct servent, содержащую определенные поля строки в базе данных сетевых служб.

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

Функции getservbyname() и getservbyport() последовательно производят поиск от начала файла до тех пор, пока не будет найдено подходящее имя протокола или номер порта, или пока не встретится EOF. Если указано имя протокола (не NULL), результаты поиска также должны соответствовать и протоколу.

Возвращаемое значение:

Указатель не корректную структуру struct servent или NULL в случае ошибки.

Файлы:

/etc/services
Файл базы данных сетевых служб.

Классификация:

POSIX 1003.1

Безопасность использования
Точка остановки потока
Да
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Нет

Предостережения:

Данная функция использует статические данные; в случае, если данные будут необходимы для использования в будущем, необходимо скопировать их, прежде чем любые последующие вызовы перезапишут эти данные.

Тематические ссылки:

endservent(), getprotoent(), getservbyport(), getservent(), struct servent, setservent()

/etc/services в Справочнике по Утилитам




Предыдущий раздел: Описание API сетевой библиотеки