GETRPCENT(3)

ИМЯ
getrpcent, getrpcbyname, getrpcbynumber, setrpcent, endrpcent - возвращают запись RPC

ОБЗОР
#include <netdb.h>
struct rpcent *getrpcent(void);
struct rpcent *getrpcbyname(const char *name);
struct rpcent *getrpcbynumber(int number);
void setrpcent(int stayopen);
void endrpcent(void);

ОПИСАНИЕ

Функции getrpcent(), getrpcbyname() и getrpcbynumber() возвращают указатель на объект с описанной ниже структурой, содержащую разделённую на поля запись из базы данных номеров программы RPC.
struct rpcent {
    char  *r_name;     /* имя сервера для этой программы RPC */
    char **r_aliases;  /* список псевдонимов */
    long   r_number;   /* номер программы RPC */
};

Члены структуры:

    r_name
        Имя сервера для этой программы RPC.

    r_aliases
        Список альтернативных имён программы RPC, завершающийся NULL.

    r_number
        Номер программы RPC для этой службы.

Функция getrpcent() считывает следующую запись из базы данных. При необходимости будет открыто подключение к базе.

Функция setrpcent() открывает соединение к базе и устанавливает следующую запись к первой записи. Если stayopen не равен нулю, то подключение к базе между вызовами нескольких функций getrpc*() не будет закрыто.

Функция endrpcent() закрывает подключение к базе.

Функции getrpcbyname() и getrpcbynumber() выполняют последовательный поиск от начала файла до нахождения имени программы RPC, её номера или конца файла.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном выполнении getrpcent(), getrpcbyname() и getrpcbynumber() возвращают указатель на статически выделенную структуру rpcent. При ошибке или EOF возвращается NULL.

ФАЙЛЫ

/etc/rpc
    база данных программных номеров RPC

АТРИБУТЫ
Описание терминов данного раздела смотрите в attributes(7).
Интерфейс | Атрибут | Значение
getrpcent(), getrpcbyname(), getrpcbynumber() | Безвредность в нитях | MT-Unsafe
setrpcent(), endrpcent() | Безвредность в нитях | MT-Safe locale

СООТВЕТСТВИЕ СТАНДАРТАМ
Нет в POSIX.1. Присутствует в BSD, Solaris и многих других системах.

ДЕФЕКТЫ
Вся информация располагается в статической области, поэтому для сохранения должна быть скопирована.

СМОТРИТЕ ТАКЖЕ
getrpcent_r(3), rpc(5), rpcinfo(8), ypserv(8)