Получить информацию о пользователе по имени
#include <sys/types.h>#include <pwd.h>struct passwd * getpwnam( const char *name );
libc
Функция getpwnam() получает информацию о пользователе с заданным именем. Она использует статический буфер, который перезаписывается при каждом вызове.
Функция 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 системной библиотеки