getpwent()

Получить следующую запись из файла базы данных паролей

Прототип:

#include <sys/types.h>
#include <pwd.h>
struct passwd * getpwent( void );

Библиотека:

libc

Описание:

Функция getpwent() возвращает следующую запись из базы данных паролей. Эта функция использует статический буфер, который перезаписывается при каждом вызове.


Note: Функции getpwent(), getpwnam() и getpwuid(), разделяют один статический буфер. Чтобы использовать эти функции с возможностью повторного вызова, см. getpwent_r().

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

Указатель на структуру struct passwd, содержащую следующую запись из базы данных паролей. При первом вызове getpwent() открывается база данных паролей и остается открытой до тех пор, пока либо не будет возвращено значение NULL для обозначения конца файла, либо не вызовется endpwent().

Коды ошибок:

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

Примеры:

/*
* This program loops, reading a login name from standard
* input and checking to see if it is a valid name. If it
* is not valid, the entire contents of the name in the
* password database are printed.
*/
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <pwd.h>
int main( void )
{
struct passwd *pw;
char buf[80];
setpwent();
while ( gets( buf ) != NULL )
{
if ( (pw = getpwnam( buf )) != (struct passwd *)0 )
{
printf( "Valid login name is: %s\n", pw->pw_name );
} else {
setpwent();
while ( (pw = getpwent()) != (struct passwd *)0 )
printf( "%s\n", pw->pw_name );
}
}
endpwent();
return (EXIT_SUCCESS);
}

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

POSIX 1003.1 X/Open Systems Interfaces Extension

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

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

struct passwd, endpwent(), errno, getgrent(), getlogin(), getpwent_r(), getpwnam(), getpwuid(), setpwent()




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