getgrnam_r()

Получить информацию о группе по имени

Прототип:

#include <sys/types.h>
#include <grp.h>
int getgrnam_r( const char *name,
struct group *grp,
char *buffer,
size_t bufsize,
struct group **result );

Аргументы:

name
Имя группы, для которой требуется получить информацию.
grp
Указатель на структуру struct group где функция может хранить информацию о группе.
buffer
Область памяти, из которой выделять любую требуемую память.
bufsize
The size of the buffer.
result
Адрес указателя, который функция getgrgid_r() устанавливает в тот же указатель, что и grp при успешном завершени, или в NULL если функция не смогла найти группу.

Библиотека:

libc

Описание:

Если определено _POSIX_THREAD_SAFE_FUNCTIONS, getgrnam_r() обновляет структуру struct group, на которую указывает grp и сохраняет указатель на эту структуру в result. Структура содержит запись из базы данных групп с совпадающим name.

Данная функция выделяет память, указанную в struct group из области памяти buffer, размером bufsize символов. Существует возможность задать максимальный размер, необходимый для buffer путем вызова sysconf() с аргументом _SC_GETGR_R_SIZE_MAX.

Функция getgrnam_r() сохраняет NULL указатель в области памяти, на которую указвает result при ошибке или если запрашиваемая запись не была найдена.

Возвращаемое значение:

0
Успешное завершение.
-1
Возникла ошибка. Возвращен код ошибки.

Коды ошибок:

ERANGE
Недостаточно места для хранения в buffer размером bufsize чтобы вместить результурующую структуру struct group.

Функция getgrnam_r() использует следующие функции, и как следствие, errno может быть установлено в одном из этих вызовов:

Классификация:

POSIX 1003.1 Thread-Safe Functions

Безопасность использования
Точка остановки потока
Да
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да

Тематические ссылки:

struct group, getgrgid(), getgrgid_r(), getgrnam(), getlogin(), sysconf()




Предыдущий раздел: Описание API системной библиотеки