getpwnam_r()

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

Прототип:

#include <sys/types.h>
#include <pwd.h>
int getpwnam_r( const char *name,
struct passwd *pwd,
char *buffer,
size_t bufsize,
struct passwd *result );

Аргументы:

name
Имя пользователя, запись о котором требуется найти.
pwd
Указатель на структуру struct passwd, где функция может хранить запись.
buffer
Область памяти, которую функция может использовать для выделения памяти, на которую ссылается структура struct passwd. Существует возможность определить максимальный размер, необходимый для данной области памяти путем вызова sysconf() с аргументом _SC_GETPW_R_SIZE_MAX.
bufsize
Размер области памяти (в символах), на которую указывает buffer.
result
Адрес указателя на структуру struct passwd. Если getpwnam_r() находит запись, она сохраняет указатель на pwd в области памяти result; в противном случае, функция хранит там нулевой указатель.

Библиотека:

libc

Описание:

Функция getpwnam_r() допускает повторный вызов, в отличие от getpwnam(). Она получает информацию о пользователе с заданным name.

Если определено _POSIX_THREAD_SAFE_FUNCTIONS, функция getpwnam_r() обновляет структуру struct passwd, на которую указывает pwd и сохраняет указатель на эту структуру в области памяти result. Структура содержит запись из базы данных пользователей с заданным name.

Функция сохраняет нулевой указатель в result при ошибке или если она не может найти запрошенную запись.

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

0 в случае успешного заврешения, или код ошибки.

Коды ошибок:

ERANGE
Недостаточно места для хранения результирующей структуры struct passwd.

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

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

POSIX 1003.1 Thread-Safe Functions

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

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

struct passwd, getlogin(), getpwent(), getpwent_r(), getpwnam(), getpwuid(), getpwuid_r()




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