| GETPROTOENT(3) | Руководство программиста Linux | GETPROTOENT(3) | 
getprotoent, getprotobyname, getprotobynumber, setprotoent, 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:
Функции getprotoent(), getprotobyname() и getprotobynumber() возвращают указатель на статически выделенную структуру protoent или указатель null при ошибке или достижении конца файла.
Описание терминов данного раздела смотрите в 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(), getprotoent() или endprotoent(), то может возникнуть состязательность по данным.
POSIX.1-2001, POSIX.1-2008, 4.3BSD.
| 2017-09-15 | GNU |