ОБЗОР
#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) |