GETPWENT(3C) GETPWENT(3C)
НАЗВАНИЕ
getpwent, getpwuid, getpwnam, setpwent, endpwent,
fgetpwent - получение элементов файла паролей
СИНТАКСИС
#include
struct passwd *getpwent ( )
struct passwd *getpwuid (uid)
int uid;
struct passwd *getpwnam (name)
char *name;
void setpwent ( )
void endpwent ( )
struct passwd *fgetpwent (f)
FILE *f;
ОПИСАНИЕ
Каждая из функций getpwent, getpwuid и getpwnam возвра-
щает указатель на структуру типа passwd, содержащую
разложенную на поля строку файла паролей /etc/passwd.
Структура описана во включаемом файле :
struct passwd {
char *pw_name;
char *pw_passwd;
int pw_uid;
int pw_gid;
char *pw_age;
char *pw_comment;
char *pw_gecos;
char *pw_dir;
char *pw_shell;
};
По поводу смысла полей структуры см. passwd(4).
При первом вызове функция getpwent возвращает указатель
на первую структуру типа passwd в файле; при следующем
вызове возвращается указатель на следующую структуру;
поэтому последовательные вызовы функции можно использо-
вать для просмотра всего файла. Функция getpwuid ищет с
начала файла строку, содержащую заданный идентификатор
пользователя uid, и возвращает указатель на структуру,
соответствующую искомой строке. Функция getpwnam ищет с
начала файла строку, содержащую специфицированное вход-
ное имя name и возвращает указатель на соответствующую
структуру. В случае неудачного поиска (в том числе из
за ошибки чтения) описанные функции возвращают пустой
указатель NULL.
Вызов функции setpwent приводит к переустановке указа-
теля чтения на начало файла паролей, то есть после это-
го вызова можно снова повторить просмотр всего файла.
Функция endpwent служит для закрытия файла паролей.
Функция fgetpwent возвращает указатель на очередную
структуру типа passwd в потоке f, удовлетворяющем фор-
мату файла /etc/passwd.
ФАЙЛЫ
/etc/passwd
СМ. ТАКЖЕ
getlogin(3C), getgrent(3C), passwd(4).
ДИАГНОСТИКА
В случае неудачного поиска (в том числе из за ошибки
чтения) возвращается пустой указатель NULL.
ПРЕДОСТЕРЕЖЕНИЯ
Описанные функции используют стандартный пакет ввода/
вывода, что приводит к неожиданному увеличению размера
программ, не использующих стандартный ввод/вывод.
ОГРАНИЧЕНИЯ
Значения, возвращаемые описанными функциями, указывают
на один и тот же статический массив, содержимое которо-
го полностью изменяется после каждого вызова. Поэтому,
если необходимо сохранить полученную с помощью функций
информацию, следует скопировать ее.
|