C++ 获取linux和windows系统的用户名

标签: 系统用户名 完整可运行代码 c++ 跨平台
833人阅读 评论(0) 收藏 举报
分类:

(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编译运行截图




查看评论

VC++ 得到计算机名和用户名 GetComputerName GetUserName

转载请标明出处,原文地址:http://blog.csdn.net/morewindows/article/details/8659417欢迎关注微博:http://weibo.com/MoreWin...
  • MoreWindows
  • MoreWindows
  • 2013-03-11 15:09:58
  • 20864

c++ 如何获取当前登录用户的名字

#include  #include  #pragma comment(lib,"Advapi32.lib") using namespace std;   int ma...
  • sikong00
  • sikong00
  • 2016-07-14 17:04:28
  • 834

VC源码获取WINDOWS系统所有的用户密码

  • 2014年08月23日 20:38
  • 37KB
  • 下载

暴力破解Windows用户名密码的c++代码

  • 2009年01月21日 15:34
  • 145KB
  • 下载

C/C++获取操作系统、CPU、内存信息(windows和linux)

有时候需要在工程里面获取一些系统或者硬件的信息,比如系统版本,cpu,内存,显卡,硬盘等,作为后续软件功能判断的依据,甚至参与性能算法自适应建模 Windows 操作系统和内存信息在windows下通...
  • u012234115
  • u012234115
  • 2017-05-01 17:39:41
  • 4696

C++ linux获取系统时间

C++ linux获取系统时间
  • u012526003
  • u012526003
  • 2017-06-28 21:13:15
  • 795

编程实(c++/c)现获得当前用户名和组名的源程式

  编程实(c++/c)现获得当前用户名和组名的源程式  来源: 作者: 发布时间:2007-05-24   #include #include #include #include #incl...
  • he3913
  • he3913
  • 2008-06-05 22:36:00
  • 2186

c++ 获取当前用户的根目录

这个需求也是在最近开发的时候遇到的,起因是mkdir函数在创建文件夹的时候只能根据绝对路径创建,而这个绝对路径是不识别 ~  这样的符号的,也就是我们在linux下常用的基于~符号实现当前用户根目录定...
  • u010953266
  • u010953266
  • 2015-12-17 13:35:31
  • 2203

Linux获取CPU 内存信息到文件C++简单实现

  • 2013年12月22日 12:46
  • 2KB
  • 下载

c++得到本地用户名和IP

bool CDlgResetAlarmInfo::GetLocalUserNameAddIP(CString &a_lstrUserName ,CString &a_IpStr) { char b...
  • ghevinn
  • ghevinn
  • 2014-06-17 11:35:34
  • 1787
    个人资料
    持之以恒
    等级:
    访问量: 1万+
    积分: 498
    排名: 10万+
    最新评论