Независимый от платформы способ получить домашний каталог пользователя в C++
В настоящее время, когда я хочу получить домашний каталог пользователя в C++, я делаю:
#include <pwd.h>
const char* get_home_directory() {
struct passwd *pw = getpwuid(getuid());
return (pw == nullptr ? nullptr : pw->pw_dir);
}
но это зависит от getpwuid
, которая является библиотечной функцией POSIX / BSD; и это C, а не C++. Есть ли платформо-независимый, более надежный C++ способ сделать то же самое?
Примечание: обычно используемая нестандартная библиотека, даже не Boost, также может работать. Это должно было бы поддержать широкий диапазон платформ все же.