13 #ifndef __STOUT_OS_WINDOWS_GETENV_HPP__
14 #define __STOUT_OS_WINDOWS_GETENV_HPP__
32 std::wstring wide_key = wide_stringify(key);
39 DWORD buffer_size = ::GetEnvironmentVariableW(wide_key.data(),
nullptr, 0);
40 if (buffer_size == 0) {
41 if (::GetLastError() == ERROR_ENVVAR_NOT_FOUND) {
49 environment.reserve(static_cast<size_t>(buffer_size));
52 ::GetEnvironmentVariableW(wide_key.data(), environment.data(), buffer_size);
54 if (value_size == 0) {
57 if (::GetLastError() == ERROR_ENVVAR_NOT_FOUND) {
64 return stringify(std::wstring(environment.data()));
69 #endif // __STOUT_OS_WINDOWS_GETENV_HPP__
Option< std::string > getenv(const std::string &key)
Definition: getenv.hpp:29
std::map< std::string, std::string > environment()
Definition: environment.hpp:24
std::string stringify(int flags)