:
struct group {
char *gr_name; /* Имя группы */
char *gr_passwd; /* Зашифрованный пароль группы */
int gr_gid; /* Числовой идентификатор группы */
char **gr_mem; /* Вектор указателей на имена членов
группы */
};
При первом обращении к функции getgrent возвращается
указатель на структуру, содержащую данные из первой
строки файла групп. При каждом следующем обращении
возвращается указатель на структуру, содержащую данные
из следующей строки файла. Таким образом, эта функция
может использоваться для поиска нужной информации в
файле /etc/group.
Функция getgrgid просматривает строки файла групп, начиная с первой, до тех пор, пока не будет найдена группа, числовой идентификатор которой совпадает с аргументом gid. Результатом функции является указатель на
структуру с информацией об этой группе.
Функция getgrnam производит поиск группы с именем, совпадающим с аргументом name, и возвращает указатель на
структуру с информацией об этой группе. Если во время
чтения будет достигнут конец файла или будет обнаружена
ошибка, то перечисленные функции возвращают пустой указатель NULL.
Функция setgrent служит для позиционирования на начало
файла групп, чтобы можно было осуществить повторный
просмотр.
Функция endgrent используется для закрытия файла /etc/
group по окончании обработки.
Функция fgetgrent действует аналогично getgrent, но информация выбирается не из файла /etc/group, а из потока
ввода f, содержимое которого имеет формат файла групп.
ФАЙЛЫ
/etc/group
СМ. ТАКЖЕ
getlogin(3C), getpwent(3C), group(4).
ДИАГНОСТИКА
В случае ошибки или достижения конца файла описанные
функции возвращают NULL.
ПРЕДОСТЕРЕЖЕНИЯ
Описанные функции используют стандартный пакет ввода/
вывода, что приводит к неожиданному увеличению размера
программ, не использующих стандартный ввод/вывод.
ОГРАНИЧЕНИЯ
Значения, возвращаемые описанными функциями, указывают
на один и тот же статический массив, содержимое которого полностью изменяется после каждого вызова. Поэтому,
если необходимо сохранить полученную с помощью функций
информацию, следует скопировать ее.