1. getlogin
char *getlogin (void);
返回用户登录时的用户名
2. getpwuid
getpwnam由login程序使用
getpwuid由ls程序使用
struct passwd *getpwuid(uid_t uid);
struct passwd *getpwnam(const char *name);
strcut passwd
{
char *pw_name;
char *pw_passwd;
uid_t pw_uid;
gid_t pw_gid;
char *pw_gecos;
char *pw_dir;
char *pw_shell;
}
3. 举例
uid_t userid;
struct passwd* pwd;
userid = getuid();
printf("userid is %d\n", userid);
//pwd = getpwnam("root");
pwd = getpwuid(userid);
printf("username is %s\nuserdir i %s\n", pwd->pw_name, pwd->pw_dir);