getpwuid和getpwnam的用法

如果知道一个用户的用户ID或者登录名,可以通过getpwuid或getpwnam函数获得用户的登录信息.
函数原型为:
      

 
#include <pwd.h>
#include <sys/types.h>

struct passwd *getpwnam(const char *name);
struct passwd *getpwuid(uid_t uid);

The passwd structure is defined in <pwd.h> as follows:

struct passwd {
char *pw_name; /* user name */
char *pw_passwd; /* user password */
uid_t pw_uid; /* user id */
gid_t pw_gid; /* group id */
char *pw_gecos; /* real name */
char *pw_dir; /* home directory */
char *pw_shell; /* shell program */
};
 




使用举例:

 
#include <pwd.h>
#include <sys/types.h>
#include <stdio.h>

int main()
{
uid_t my_uid;
my_uid = 500;

struct passwd *my_info;

my_info = getpwuid( my_uid );
//my_info = getpwnam( "fflg" );

printf( "my name = [%s] ", my_info->pw_name );
printf( "my passwd = [%s] ", my_info->pw_passwd );
printf( "my uid = [%d] ", my_info->pw_uid );
printf( "my gid = [%d] ", my_info->pw_gid );
printf( "my gecos = [%s] ", my_info->pw_gecos );
printf( "my dir = [%s] ", my_info->pw_dir );
printf( "my shell = [%s] ", my_info->pw_shell );

return 0;
}
 
原文地址:https://www.cnblogs.com/yyxayz/p/4005738.html