Provided by: manpages-ru-dev_4.26.0-1_all 

НАИМЕНОВАНИЕ
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)