getpwnam()

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

Прототип:

#include <sys/types.h>
#include <pwd.h>
struct passwd * getpwnam( const char *name );

Аргументы:

name
Имя пользователя, запись о котором требуется найти.

Библиотека:

libc

Описание:

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


Note: Функции getpwent(), getpwnam() и getpwuid() разделяют один общий статический буфер.

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

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

Указатель на структуру struct passwd, содержащую запись из базы данных групп с совпадающим name. Нулевой указатель возвращается в случае ошибки или невозможности найти запись name.

Примеры:

/*
* Print information from the password entry
* about the user name given as argv[1].
*/
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <pwd.h>
int main( int argc, char **argv )
{
struct passwd *pw;
if ( (pw = getpwnam( argv[1] )) == NULL )
{
fprintf( stderr, "getpwnam: unknown %s\n", argv[1] );
return (EXIT_FAILURE);
}
printf( "login name %s\n", pw->pw_name );
printf( "user id %d\n", pw->pw_uid );
printf( "group id %d\n", pw->pw_gid );
printf( "home dir %s\n", pw->pw_dir );
printf( "login shell %s\n", pw->pw_shell );
return (EXIT_SUCCESS);
}

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

POSIX 1003.1

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

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

struct passwd, getlogin(), getpwent(), getpwent_r(), getpwnam_r() getpwuid()




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