getpw - восстанавливает строку пароля
getpw(3)
восстанавливает строку пароля
ОБЗОР
#define _GNU_SOURCE /* смотрите feature_test_macros(7) */
#include <sys/types.h>
#include <pwd.h>
int getpw(uid_t uid, char *buf);
ОПИСАНИЕ
Функция
getpw() заново создаёт в буфере строку пароля для пользователя с
ID
uid в буфере
buf. Возвращаемый буфер содержит строку в формате
name:passwd:uid:gid:gecos:dir:shell
Структура passwd определена в <pwd.h> следующим образом:
struct passwd {
char *pw_name; /* имя пользователя */
char *pw_passwd; /* пароль пользователя */
uid_t pw_uid; /* идентификатор пользователя */
gid_t pw_gid; /* идентификатор группы */
char *pw_gecos; /* информация о пользователе */
char *pw_dir; /* домашний каталог */
char *pw_shell; /* программная оболочка */
};
Подробней о полях этой структуры смотрите в passwd(5).
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном выполнении
getpw() возвращается 0; при ошибке возвращается
-1, а в
errno содержится код ошибки.
Если uid не найден в базе данных паролей, то getpw() возвращает -1,
присваивает errno значение 0 и buf не изменяется.
ОШИБКИ
0 или ENOENT
Отсутствует пользователь с соответствующим uid.
EINVAL
Значение buf равно NULL.
ENOMEM
Недостаточно памяти для структуры passwd.
ФАЙЛЫ
/etc/passwd
файл, содержащий базу паролей
АТРИБУТЫ
Описание терминов данного раздела смотрите в
attributes(7).
Интерфейс Атрибут Значение
getpw()
безвредность в потоках: безвредно (MT-Safe locale)
СООТВЕТСТВИЕ СТАНДАРТАМ
SVr2.
ДЕФЕКТЫ
Функция
getpw() является в каком-то смысле опасной, так как может
переполнить предоставляемый ей буфер
buf. Она заменена на
getpwuid(3).