我需要一种在 Linux 上运行的 C++ 程序中获取用户主目录的方法。如果相同的代码可以在 Unix 上运行,那就太好了。我不想使用 HOME 环境值。
AFAIK,根主目录是/root。如果我的程序由 root 用户运行,是否可以在此目录中创建一些文件/文件夹?
原文由 Alex F 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以在 C++ 中使用此代码获取主目录
std::string home_dir = getenv("HOME");
原文由 Ryotaro Hoshina 发布,翻译遵循 CC BY-SA 4.0 许可协议
7 回答5.6k 阅读
4 回答4.2k 阅读
3 回答791 阅读✓ 已解决
2 回答956 阅读✓ 已解决
2 回答3.5k 阅读
1 回答1.2k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
您需要
getuid
获取当前用户的用户 ID,然后getpwuid
获取该用户的密码条目(包括主目录):注意:如果您在线程应用程序中需要此功能,则需要使用
getpwuid_r
代替。