(1)获取linux系统的用户名:
通过 struct
passwd *getpwuid(uid_t uid)函数; 该函数返回passwd结构体,此结构体中包含用户名字段
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;
/*user real name */
char
*pw_dir;
/*home directory */
char
*pw_shell;
/*shell program */
};
(2)获取windows系统的用户名:
通过GetUserName( buffer , &len ) 函数
(3)完整的实例(跨平台):
#include <iostream>
#include <string>
#ifdef linux
#include <unistd.h>
#include <pwd.h>
#endif
#ifdef _WIN32
#include<Windows.h>
#endif
std::string getUserName()
{
#if defined linux //linux system
uid_t userid;
struct passwd* pwd;
userid=getuid();
pwd=getpwuid(userid);
return pwd->pw_name;
#elif defined _WIN32 //windows system
const int MAX_LEN = 100;
char szBuffer[MAX_LEN];
DWORD len = MAX_LEN;
if( GetUserName(szBuffer, &len) ) //用户名保存在szBuffer中,len是用户名的长度
return szBuffer;
#else //outher system
return "";
#endif
}
int main()
{
std::string ss = getUserName();
std::cout << ss << std::endl;
return 0;
}
(4)linux系统上gcc编译运行截图
发布者:admin,转转请注明出处:http://www.yc00.com/web/1738020307a4012351.html
评论列表(0条)