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

НАИМЕНОВАНИЕ

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

БИБЛИОТЕКА

       Стандартная библиотека языка C (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(), то может возникнуть состязательность по данным.

ВЕРСИИ

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

СТАНДАРТЫ

       Отсутствуют.

ИСТОРИЯ

       setnetgrent(),  endnetgrent(),  getnetgrent(),  and  innetgr()   are  available  on  most  UNIX  systems.
       getnetgrent_r()  is not widely available on other systems.

СМОТРИТЕ ТАКЖЕ

       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> и Kirill Rekhov <krekhov.dev@gmail.com>

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

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

Справочные страницы Linux 6.9.1                   2 мая 2024 г.                                   setnetgrent(3)