getprotobyname()

Получить запись протокола по имени

Прототип:

#include <netdb.h>
struct protoent * getprotobyname( const char *name );

Аргументы:

name
Имя протокола, запись которого требуется получить.

Библиотека:

libsocket

Описание:

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

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

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

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

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

Файлы:

/etc/protocols
Файл базы данных имен протоколов.

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

POSIX 1003.1

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

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

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

В настоящее время поддерживаются только Интернет-протоколы.

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

endprotoent(), getprotobynumber(), getprotoent(), struct protoent, setprotoent()

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




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