如何在MinGW中获取用户名?

时间:2012-11-28 18:42:38

标签: c mingw username

要使用MinGW从Windows获取用户名,我应该使用unistd.h中的getlogin()函数还是Windows函数GetUserName?

谢谢。

1 个答案:

答案 0 :(得分:2)

您可以查看USERNAME变量:

char *name = getenv("USERNAME"); // Get environmentvariable for Username

if( name == NULL )
    return -1; // Username not found ...
else
    printf("%s\n", name); // Output Username

如果您完全使用Windows,则可以使用其API(GetUserName()):

#include <windows.h>
#include <Lmcons.h>

// ...

TCHAR name [ UNLEN + 1 ];
DWORD size = UNLEN + 1;

if( GetUserName((TCHAR*) name, &size) )
    printf("%s\n", name); // Output Username
else
    return -1; // Username not found ...

一般来说:

  • 使用 getlogin() ,如果您使用的是 linux / unix ,因为MinGW中
  • 如果你在 windows
  • ,请使用 GetUserName()
  • 使用两者(条件组预处理器),您希望保持独立平台