如何在MinGW中获取用户名?
要使用MinGW从Windows获取用户名,我应该使用unistd.h中的getlogin()函数还是Windows函数GetUserName?
谢谢。
您可以检查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 #include // ... 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 ...
一般来说:
- 如果您使用的是linux / unix,请使用
getlogin()
,因为它在MinGW中不可用 - 如果你在Windows上使用
GetUserName()
- 使用两者 (条件组预处理器),你想要保持独立平台