作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在开发一个跨平台库,旨在从用户的主目录加载配置文件。这个想法是在不编辑代码的情况下自动提供配置参数。
此库可用于桌面应用程序或守护进程/服务。在(我假设)大多数 Unix 环境中,我可以使用 getpwuid()
来获取用户的主目录。在 Windows 中所以 told me我可以使用 SHGetKnownFolderPath但它的文档说它仅适用于桌面应用程序。有没有办法在 Windows 上为运行服务的用户获取此路径?
最佳答案
对于控制台应用程序,最简单的方法是检索 USERPROFILE
环境变量或连接 HOMEDRIVE
和 HOMEPATH
环境变量的值.
使用标准库中的getenv()
函数:https://msdn.microsoft.com/en-us/library/tehxacec.aspx
示例程序:
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char** argv) {
printf("USERPROFILE = %s\n", getenv("USERPROFILE"));
printf("HOMEDRIVE = %s\n", getenv("HOMEDRIVE"));
printf("HOMEPATH = %s\n", getenv("HOMEPATH"));
return 0;
}
输出:
USERPROFILE = C:\Users\myuser
HOMEDRIVE = C:
HOMEPATH = \Users\myuser
关于c++ - 如何在 Windows 上获取用户主目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42696260/
我是一名优秀的程序员,十分优秀!