getservbyport()

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

Прототип:

#include <netdb.h>
struct servent * getservbyport( int port,
const char *proto );

Аргументы:

port
Номер порта для службы.
proto
NULL, или протокол службы.

Библиотека:

libsocket

Описание:

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

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

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

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

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

Файлы:

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

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

POSIX 1003.1

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

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

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

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

endservent(), getservbyname(), getservent(), struct servent, setservent()

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




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