对于 C/C++,似乎没有可移植的函数来获取 Linux/Posix 和 Windows 中的用户名。实现这一目标的最简单但最健壮的可移植代码是什么?
在 Linux 中,似乎总是定义 USER 环境变量,而 Windows 似乎定义了 USERNAME 变量。依靠 getenv 可以避免包含 windows.h 并最小化预处理器语句:
char * user_name = getenv("USER");
if (!user_name) {
user_name = getenv("USERNAME");
}
但这种方法是否稳健?还是我对另一种解决方案一无所知?而且我对iOS也一无所知...