Linux Man на русском

  User    Syst    Libr    Device    Files    Other    Admin  



   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.