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

ИМЯ

       setnetgrent,  endnetgrent, getnetgrent, getnetgrent_r, innetgr - работа с элементами групп
       сетей

LIBRARY

       Standard C library (libc, -lc)

СИНТАКСИС

       #include <netdb.h>

       int setnetgrent(const char *netgroup);
       void endnetgrent(void);

       int getnetgrent(char **restrict host,
                   char **restrict user, char **restrict domain);
       int getnetgrent_r(char **restrict host,
                   char **restrict user, char **restrict domain,
                   char buf[restrict .buflen], size_t buflen);

       int innetgr(const char *netgroup, const char *host,
                   const char *user, const char *domain);

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

       setnetgrent(), endnetgrent(), getnetgrent(), getnetgrent_r(), innetgr():
           начиная с glibc 2.19:
               _DEFAULT_SOURCE
           в glibc 2.19 и старее:
               _BSD_SOURCE || _SVID_SOURCE

ОПИСАНИЕ

       Файл netgroup впервые появился в SunOS. База данных  netgroup  представляет  собой  список
       строк с тремя элементами (hostname, username, domainname)  или с другими именами netgroup.
       Любой из элементов тройки  может  быть  пустым,  то  есть  совпадает  с  любым  значением.
       Описываемые   здесь  функции  предоставляют  доступ  к  базам  данных  netgroup.  В  файле
       /etc/nsswitch.conf задаётся какая база данных будет использована при поиске.

       Вызов  setnetgrent()  настраивает  netgroup,  которая  будет  использована  при  поиске  в
       последующих  вызовах  getnetgrent().  Функция  getnetgrent()  выбирает  следующий  элемент
       netgroup и возвращает указатели  в  host,  user,  domain.  Указатель  null  означает,  что
       соответствующая  запись  совпадает  с  любой строкой. Значения указателей корректны до тех
       пор, пока не произойдёт других вызовов функций работы  с  netgroup.  Чтобы  избежать  этой
       проблемы  вы  можете  использовать  функцию  GNU  getnetgrent_r(), которая хранит строки в
       переданной ей буфере. Чтобы освободить все выделенные буферы используйте endnetgrent().

       В большинстве случаев чаще  всего  проверяется  присутствие  тройки  (hostname,  username,
       domainname)   в  netgroup.  Для  этого  можно использовать функцию innetgr() и не вызывать
       остальные три функции. Не забудьте, что указатель null — универсальный символ и  совпадает
       с любой строкой. Функцию можно безопасно использовать в нитях.

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

       При успешном выполнении эти функции возвращают 1 и 0 при ошибке.

ФАЙЛЫ

       /etc/netgroup
       /etc/nsswitch.conf

АТРИБУТЫ

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

       ┌─────────────────┬──────────────────────┬────────────────────────────────────────────────┐
       │ИнтерфейсАтрибутЗначение                                       │
       ├─────────────────┼──────────────────────┼────────────────────────────────────────────────┤
       │setnetgrent(),   │ Безвредность в нитях │ MT-Unsafe race:netgrent locale                 │
       │getnetgrent_r(), │                      │                                                │
       │innetgr()        │                      │                                                │
       ├─────────────────┼──────────────────────┼────────────────────────────────────────────────┤
       │endnetgrent()    │ Безвредность в нитях │ MT-Unsafe race:netgrent                        │
       ├─────────────────┼──────────────────────┼────────────────────────────────────────────────┤
       │getnetgrent()    │ Безвредность в нитях │ MT-Unsafe race:netgrent race:netgrentbuf       │
       │                 │                      │ locale                                         │
       └─────────────────┴──────────────────────┴────────────────────────────────────────────────┘
       В приведённой выше таблице netgrent в race:netgrent означает, что если в нескольких  нитях
       программы  одновременно  используются  функции  setnetgrent(), getnetgrent_r(), innetgr(),
       getnetgrent() или endnetgrent(), то может возникнуть состязательность по данным.

СТАНДАРТЫ

       Эти функции отсутствуют  в  POSIX.1,  но  setnetgrent(),  endnetgrent(),  getnetgrent()  и
       innetgr()  доступны  в  большинстве  систем  UNIX.  Функция  getnetgrent_r() не так широко
       распространена в других системах.

ЗАМЕЧАНИЯ

       В реализации BSD функция setnetgrent() возвращает void.

СМ. ТАКЖЕ

       sethostent(3), setprotoent(3), setservent(3)

ПЕРЕВОД

       Русский   перевод   этой   страницы   руководства    был    сделан    Alexander    Golubev
       <fatzer2@gmail.com>,   Azamat   Hackimov  <azamat.hackimov@gmail.com>,  Hotellook,  Nikita
       <zxcvbnm3230@mail.ru>,       Spiros       Georgaras       <sng@hellug.gr>,       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⟩.