getprotoent - endprotoent
getprotoent(3)
endprotoent
ОБЗОР
#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), то может
возникнуть состязательность по данным.
СООТВЕТСТВИЕ СТАНДАРТАМ
POSIX.1-2001, POSIX.1-2008, 4.3BSD.