我正在编写一段小的C++代码,用于访问和编辑用户主目录中特定的文本文件。目前我有以下代码(这是相关部分):
这样,正如你所看到的,我要求用户提供用户名,并将其附加到位置字符串中。有没有一种简单的方法可以找到用户的主目录而不需要询问用户?我尝试过“~ / ...”,但它不起作用。
我知道我可以扫描“/ etc / passwd”文件以从那里找到它,但我想知道是否还有其他方法。
bool core(void) {
std::string autostart_entry = "";
std::string user_entry = "";
std::fstream username;
username.open("username.txt", std::fstream::in);
std::string location;
std::string user_name;
if (username.fail()) {
username.open("username.txt", std::fstream::out);
std::cout << "What's your system username? ";
std::getline(std::cin, user_name);
username << user_name;
}
else
username >> user_name;
username.close();
location = "/home/" + user_name + "/.config/openbox/autostart";
...
}
这样,正如你所看到的,我要求用户提供用户名,并将其附加到位置字符串中。有没有一种简单的方法可以找到用户的主目录而不需要询问用户?我尝试过“~ / ...”,但它不起作用。
我知道我可以扫描“/ etc / passwd”文件以从那里找到它,但我想知道是否还有其他方法。
chdir
来完成相同的操作。请查看下面的答案以获取完整的披露。如果有帮助,请接受!;) - gokul_uf