Linux Man на русском

  User    Syst    Libr    Device    Files    Other    Admin  



   getrpcbynumber_r - возвращают запись RPC

getrpcbynumber_r(3) возвращают запись RPC

Other Alias

getrpcent_r, getrpcbyname_r


ОБЗОР

#include <netdb.h>


int getrpcent_r(struct rpcent *result_buf, char *buf,
size_t buflen, struct rpcent **result);

int getrpcbyname_r(const char *name,
struct rpcent *result_buf, char *buf,
size_t buflen, struct rpcent **result);

int getrpcbynumber_r(int number,
struct rpcent *result_buf, char *buf,
size_t buflen, struct rpcent **result);

Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

getrpcent_r(), getrpcbyname_r(), getrpcbynumber_r():

_BSD_SOURCE || _SVID_SOURCE


ОПИСАНИЕ

Функции getrpcent_r(), getrpcbyname_r() и getrpcbynumber_r() являются реентерабельными эквивалентами getrpcent(3), getrpcbyname(3) и getrpcbynumber(3), соответственно. Они отличаются способом возврата структуры rpcent, списком параметров и типом возвращаемого значения. В этой справочной странице описаны только различия с нереентерабельными функциями.

Вместо возврата указателя на статически выделенную структуру rpcent в качестве результата эти функции копируют структуру в расположение, указанное result_buf.

Массив buf используется для хранения строковых полей из возвращаемой структуры rpcent (нереентерабельные функции выделяют эти строки из статического хранилища). Размер данного массива задаётся в buflen. Если buf слишком мал, то вызов завершается с ошибкой ERANGE, вызывающий должен его повторить с большим буфером (для большинства приложений должно быть достаточно буфера длиной 1024 байт).

Если вызов получил запись RPC, то *result указывает на result_buf; в противном случае *result устанавливается в NULL.


ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

При успешном выполнении эти функции возвращают 0. При ошибке возвращается одно из положительных значений, перечисленных В разделе
ОШИБКИ.

При ошибке, отсутствии записи (getrpcbyname_r(), getrpcbynumber_r()) или конце данных (getrpcent_r()) значение result равно NULL.


ОШИБКИ

ENOENT (getrpcent_r()) Больше нет записей в базе данных.

ERANGE Размер buf слишком мал. Попробуйте ещё раз с большим буфером (и увеличенным значением buflen).


АТРИБУТЫ

Описание терминов данного раздела смотрите в attributes(7).

Интерфейс Атрибут Значение
getrpcent_r(), getrpcbyname_r(), getrpcbynumber_r() безвредность в потоках: безвредно (MT-Safe locale)


СООТВЕТСТВИЕ СТАНДАРТАМ

Эти функции являются расширениями GNU. Функции с похожими именами есть и в других системах, хотя и с другим набором параметров.