Provided by: manpages-ru-dev_4.18.1-1_all bug

ИМЯ

       getnetent_r,  getnetbyname_r,  getnetbyaddr_r  - возвращают запись о сети (реентерабельные
       версии)

LIBRARY

       Standard C library (libc, -lc)

СИНТАКСИС

       #include <netdb.h>

       int getnetent_r(struct netent *restrict result_buf,
                       char buf[restrict .buflen], size_t buflen,
                       struct netent **restrict result,
                       int *restrict h_errnop);
       int getnetbyname_r(const char *restrict name,
                       struct netent *restrict result_buf,
                       char buf[restrict .buflen], size_t buflen,
                       struct netent **restrict result,
                       int *restrict h_errnop);
       int getnetbyaddr_r(uint32_t net, int type,
                       struct netent *restrict result_buf,
                       char buf[restrict .buflen], size_t buflen,
                       struct netent **restrict result,
                       int *restrict h_errnop);

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

       getnetent_r(), getnetbyname_r(), getnetbyaddr_r():
           начиная с glibc 2.19:
               _DEFAULT_SOURCE
           в glibc 2.19 и старее:
               _BSD_SOURCE || _SVID_SOURCE

ОПИСАНИЕ

       Функции  getnetent_r(),  getnetbyname_r()  и  getnetbyaddr_r()  являются  реентерабельными
       эквивалентами  getnetent(3),  getnetbyname(3)  и  getnetbynumber(3),  соответственно.  Они
       отличаются способом возврата структуры netent и списком параметров и  типом  возвращаемого
       значения.  В  этой  справочной  странице  описаны  только  различия  с  нереентерабельными
       функциями.

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

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

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

       Буфер, указанный h_errnop, используется для возврата значения, которое  бы  сохранилось  в
       глобальной переменной h_errno нереентерабельными версиями этих функций.

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

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

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

ОШИБКИ

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

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

АТРИБУТЫ

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

       ┌─────────────────────────────────────────────────┬──────────────────────┬────────────────┐
       │ИнтерфейсАтрибутЗначение       │
       ├─────────────────────────────────────────────────┼──────────────────────┼────────────────┤
       │getnetent_r(), getnetbyname_r(),                 │ Безвредность в нитях │ MT-Safe locale │
       │getnetbyaddr_r()                                 │                      │                │
       └─────────────────────────────────────────────────┴──────────────────────┴────────────────┘

СТАНДАРТЫ

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

СМ. ТАКЖЕ

       getnetent(3), networks(5)

ПЕРЕВОД

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

       Этот  перевод  является  бесплатной  документацией;  прочитайте  Стандартную  общественную
       лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если  вы  обнаружите  ошибки  в  переводе этой страницы руководства, пожалуйста, отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.