ОБЗОР
#include <netdb.h>
struct protoent *getprotoent(void);
struct protoent *getprotobyname(const char *name);
struct protoent *getprotobynumber(int proto);
void setprotoent(int stayopen);
void endprotoent(void);
ОПИСАНИЕ
Функция getprotoent() считывает следующую запись из файла, содержащего базу протоколов (смотрите protocols(5)), и возвращает структуру protoent, содержащую поля из этой записи. При необходимости будет открыто подключение к базе.Функция getprotobyname() возвращает структуру protoent элемента из базы данных, который совпадает с именем протокола name. При необходимости будет открыто подключение к базе.
Функция getprotobynumber() возвращает структуру protoent элемента из базы данных, который совпадает с номером протокола number. При необходимости будет открыто подключение к базе.
Функция setprotoent() открывает соединение к базе и устанавливает следующую запись к первой записи. Если stayopen не равен нулю, то подключение к базе между вызовами нескольких функций getproto*() не будет закрыто.
Функция endprotoent() закрывает подключение к базе.
Структура protoent определена в <netdb.h> таким образом:
struct protoent { char *p_name; /* официальное имя протокола */ char **p_aliases; /* список псевдонимов */ int p_proto; /* номер протокола */ }
Члены структуры protoent:
- p_name
- Официальное название протокола.
- p_aliases
- Список альтернативных имён протокола, завершающийся NULL.
- p_proto
- Номер протокола.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Функции getprotoent(), getprotobyname() и getprotobynumber() возвращают указатель на статически выделенную структуру protoent или указатель null при ошибке или достижении конца файла.ФАЙЛЫ
- /etc/protocols
- файл, содержащий базу протоколов
АТРИБУТЫ
Описание терминов данного раздела смотрите в attributes(7).Интерфейс | Атрибут | Значение |
getprotoent() | безвредность в нитях |
MT-Unsafe race:protoent
race:protoentbuf locale |
getprotobyname() | безвредность в нитях |
MT-Unsafe race:protobyname
locale |
getprotobynumber() | безвредность в нитях |
MT-Unsafe race:protobynumber
locale |
setprotoent(),
endprotoent() | безвредность в нитях |
MT-Unsafe race:protoent
locale |
В приведённой выше таблице protoent в race:protoent означает, что если в нескольких нитях программы одновременно используются функции setprotoent(3), getprotoent(3) или endprotoent(3), то может возникнуть состязательность по данным.