getrpcent_r(3)

НАИМЕНОВАНИЕ
getrpcent_r, getrpcbyname_r, getrpcbynumber_r - возвращают запись RPC (реентерабельные версии)

БИБЛИОТЕКА
Стандартная библиотека языка C (libc, -lc)

ОБЗОР
#include <netdb.h>

int getrpcent_r(struct rpcent *result_buf, char buf[.buflen],
                size_t buflen, struct rpcent **result);
int getrpcbyname_r(const char *name,
                struct rpcent *result_buf, char buf[.buflen],
                size_t buflen, struct rpcent **result);
int getrpcbynumber_r(int number,
                struct rpcent *result_buf, char buf[.buflen],
                size_t buflen, struct rpcent **result);

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

getrpcent_r(), getrpcbyname_r(), getrpcbynumber_r():
    начиная с glibc 2.19:
        _DEFAULT_SOURCE
    в glibc 2.19 и старее:
        _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.

СМОТРИТЕ ТАКЖЕ
getrpcent(3), rpc(5)

ПЕРЕВОД
Русский перевод этой страницы руководства разработал(и) Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitry Bolkhovskikh <d20052005@yandex.ru>, Vladislav <ivladislavefimov@gmail.com>, Yuri Kozlov <yuray@komyakino.ru>, Иван Павлов <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков (<debian-l10n-russian@lists.debian.org>).